2013-06-24 3 views
0

Я пробовал с несколькими браузерами: chrome, firefox и Internet explorer. Моя страница имеет следующий код:Функция (window) .unload никогда не вызывается в jQuery

$(window).unload(function() { 
    alert('Leaving page'); 
}); 

и предупреждение о выходе страницы не появляется, когда я покидаю страницу. Я знаю, что синтаксис является правильным, потому что, когда я изменить код, чтобы вызвать функцию загрузки, просто удаляя «не-», как так:

$(window).load(function() { 
    alert('Leaving page'); 
}); 

Оповещение появляется хорошо, когда окно загрузки, а также консоль Безразлично «т сказать что-нибудь про то, что blocked.I также пытались использовать onbeforeunload как таковой:

window.onbeforeunload = function() { 
    alert('Leaving page'); 
}; 

без успеха.

ответ

3

Это по дизайну. Вы просто не можете alert() от unload event:

  • взаимодействия UI неэффективны (window.open, оповещения, подтверждения и т.д.)

Если Вы желаете, чтобы дать пользователю шанс изменить свое мнение о закрытии окна, beforeunload - это правильное событие. Но, вы можете только returnmessage вы хотите отобразить:

window.onbeforeunload = function() { 
    return 'Leaving already?'; 
}; 
+0

'возвращение подтверждения («Вы уверены, что хотите уйти?»);'? –

+0

@ Свекла-свекла Nope. http://jsfiddle.net/YLC2P/. По крайней мере, в Chrome это означает, что «* false *» является «сообщением» без 'confirm()' когда-либо появляющегося. В случае 'beforeunload' значение' return' не относится к аннулированию. –

+0

ОК, спасибо. Это была просто мысль. Я использую Opera здесь - абсолютно ничего в отделе разгрузки работает. –