2013-07-22 43 views
7

Tôi đang cố cảnh báo điều gì đó sau khi đóng trang.window.unload() sẽ không hoạt động trong jQuery

Một đơn giản window.unload ví dụ như sau:

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!"); 
}); 

Tái bút:

Tôi đã thử javascript quá, nhưng không cảnh báo bất cứ điều gì ra!

test.js

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

có thể trùng lặp của [javascript để kiểm tra khi cửa sổ trình duyệt đóng lại] (http://stackoverflow.com/questions/805463/javascript-to-check-when-the-browser-window-is-close) – Quentin

+2

Làm thế nào về 'cửa sổ .onbeforeunload'? – tymeJV

Trả lời

22

Hầu hết các trình duyệt ngăn chặn alert trong unload. Điều tốt nhất bạn có thể làm là sử dụng một trình xử lý onbeforeunload trả về một chuỗi - trình duyệt sẽ hiển thị chuỗi cho người dùng:

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

Demo here.

+0

Cảm ơn bạn 'onbeforeunload' làm việc như một sự quyến rũ, nhưng chỉ trên FireFox !!! không hoạt động trên Chrome !!! –

+1

@HamedKamrava: Bạn có trả lại chuỗi, thay vì gọi 'alert'? Xem câu trả lời cập nhật của tôi và bản demo được liên kết. – RichieHindle

+0

Nó hoạt động như một nét duyên dáng :). tnx –

0

Sử dụng body hoặc document thay vì cửa sổ.

+0

Điều đó không có tác dụng. – Renan

1

Trình duyệt nào bạn đang thử nghiệm mã này?

Nếu bạn kiểm tra liên kết sau từ W3School, Opera và Chrome không hỗ trợ nó. LINK

Và một ví dụ làm việc cho onbeforeunload là sử dụng jquery như sau:

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

(tôi sẽ bình luận bit cuối cùng này trên bài viết ở trên nhưng tôi chưa thể bình luận: '()

Các vấn đề liên quan