2013-07-22 1 views
7

Я пытаюсь предупредить что-то после закрытия страницы.window.unload() не будет работать в jQuery

Простой пример window.unload, как показано ниже:

HTML

<html> 
<body> 
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
    <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script> 
    <script src="test.js" type="text/javascript"> 
</html> 

test.js

$(window).unload(function() { 
    alert("Bye now!"); 
}); 

P.S:

Я тоже пробовал javascript, но ничего не предупреждал!

test.js

window.onunload = function() { 
    alert("Bye now!"); 
}; 
+0

возможный дубликат [javascript для проверки закрытия окна браузера] (http://stackoverflow.com/questions/805463/javascript-to-check-when-the-browser-window-is-close) – Quentin

+2

Как насчет 'окна .onbeforeunload'? – tymeJV

ответ

22

Большинство браузеров предотвратить alert в unload. Лучшее, что вы можете сделать, это использовать onbeforeunload обработчик, который возвращает строку - браузер будет показывать эту строку пользователя:

window.onbeforeunload = function() { 
    return "Bye now!"; 
}; 

Demo here.

+0

Спасибо. 'onbeforeunload' работает как шарм. Но только на FireFox !!! не работает на Chrome !!! –

+1

@HamedKamrava: Вы возвращаете строку, а не вызываете 'alert'? Смотрите мой обновленный ответ и связанную демоверсию. – RichieHindle

+0

Это работает как шарм :). tnx –

0

Использование body или document вместо окна.

+0

Это тоже не работает. – Renan

1

В каком браузере вы тестируете этот код?

Если вы проверите следующую ссылку из W3School, Opera и Chrome не поддерживают ее. LINK

И рабочий пример для onbeforeunload является использование JQuery следующим образом:

$(window).on('beforeunload', function() { 
      // Do stuff 
    }); 

(я буду комментировать этот последний бит на пост выше, но я пока не могу комментировать: '()

Смежные вопросы