tôi cần hiển thị hộp thoại xác nhận trước khi đóng cửa sổ trình duyệt bằng javascript hoặc PHP. hộp xác nhận sẽ xuất hiện khi tôi nhấp vào nút đóng của trình duyệt. khác khôn ngoan không hiển thị hộp thoại. hãy giúp tôi bất kỳ.Xác nhận hộp thoại khi tôi đóng trình duyệt?
Trả lời
Bạn nên xử lý sự kiện onbeforeunload ...
function closeEditorWarning(){
return 'Are you sure?'
}
window.onbeforeunload = closeEditorWarning;
Hoặc sử dụng jquery, window.attachEvent/window.addEventListener để làm điều đó độc đáo
function doUnload()
{
// use confirm dialog box here
confirm("Window is closing...");
}
<body onunload="doUnload()">
onbeforeunload là trình xử lý sự kiện để sử dụng. – mplungjan
onunload
không phải là rất hữu ích (trong tôi ý kiến) vì bạn không thể làm bất kỳ điều gì với số atmà bạn đang yêu cầu (ngoại trừ có thể thử một cửa sổ mới khác với window.open
, vì vậy onbeforeunload
hữu ích hơn đối với trường hợp này.
Đặt cược của bạn tốt hơn là onbeforeunload
, điều này thật tuyệt vời nhưng sẽ không hoạt động trong Opera (mặc dù điều này thường không phải là công cụ xử lý giao dịch).
Giống như ivy nói, nó sẽ giống như thế này:
<script>
var userIsEditingSomething; // set this if something crazy happens
oldOnBeforeUnload = window.onbeforeunload;
window.onbeforeunload = function() {
// attempt to handle a previous onbeforeunload
if ('function' === typeof oldOnBeforeUnload) {
var message = oldOnBeforeUnload();
if ('undefined' !== typeof message) {
if (confirm('string' === typeof message ? message : 'Are you sure you want to leave this page?')) {
return; // allow user to exit without further annoying pop-ups
}
}
}
// handle our own
if (userIsEditingSomething) {
return 'Are you sure you want to exit?';
}
};
</script>
VÀ nó sẽ kích hoạt bất cứ khi nào người dùng rời khỏi trang vì bất kỳ lý do gì. KHÔNG chỉ khi đóng trình duyệt – mplungjan
Bạn nói đúng. Mặc dù có thể có sự trừu tượng tốt cho vấn đề này (jquery etc), nhiều năm trước tôi đã sử dụng để kiểm tra điều kiện "(event.clientX <0 || event.clientY <0)" để phân biệt giữa ai đó nhấn nút đóng cửa sổ (điều kiện là đúng) và hành động điều hướng thông thường (theo một liên kết, gửi biểu mẫu, quay lại, chuyển tiếp). Đây không phải là giải pháp chống lỗi (ví dụ: ALT-F4 không bị bắt), vì vậy tôi hy vọng ai đó có thể cung cấp cho bạn giải pháp tốt hơn. – ivy
- 1. Cách chọn “Hủy” theo mặc định trong hộp xác nhận khi đóng tab trình duyệt
- 2. Xác nhận trước khi đóng tab/trình duyệt
- 3. WinForms: Tại sao tôi nhận được InvalidCastException khi hiển thị hộp thoại trình duyệt thư mục?
- 4. xác nhận trước khi thoát hộp thoại
- 5. Hộp thoại xác nhận GWT
- 6. JQuery hộp thoại xác nhận
- 7. Trình nghe Java trên hộp thoại đóng
- 8. Sau khi thêm hộp thoại không đóng
- 9. Đóng các hộp thoại con khi đóng phụ huynh
- 10. Hộp thoại xác nhận khi chạy trong asp.net
- 11. Cookie xác thực/phiên xóa sau khi trình duyệt đóng
- 12. Hộp thoại xác nhận SMS của Android
- 13. Hộp thoại FB.ui yêu cầu redirect_uri, hộp thoại không đóng
- 14. Hộp thoại Dojo với nút xác nhận
- 15. Cách xử lý hộp thoại xác nhận xem trên web?
- 16. Cách đóng Hộp thoại Tin nhắn theo chương trình
- 17. Cách đóng Hộp thoại jQuery trong hộp thoại?
- 18. Hộp thoại trình duyệt thư mục như hộp thoại mở tập tin
- 19. Duyệt tìm hộp thoại thư mục
- 20. Hộp thoại tiến trình UI đóng băng/Slow
- 21. Hộp thoại giao diện người dùng jQuery: cách đóng hộp thoại khi nhấp vào bên ngoài?
- 22. Cách đóng hộp thoại tin nhắn theo chương trình?
- 23. Cách đóng Hộp thoại trong Android theo lập trình?
- 24. Selenium WebDriver và trình duyệt chọn hộp thoại tập tin
- 25. Phiên bị mất khi đóng trình duyệt
- 26. Chụp sự kiện khi đóng trình duyệt
- 27. Visual Studio 2008 hộp thoại trình duyệt thư mục
- 28. Hộp thoại Jquery - không phai mờ trước khi đóng
- 29. Ẩn bàn phím nhập mềm khi hộp thoại đóng
- 30. Đóng hộp thoại khi nhấp chuột (ở bất kỳ đâu)
Và bạn có thể quay trở lại 'undefined' từ gọi lại, bạn nên chủ trương tiêu diệt các hộp thoại xác nhận, ví dụ sau khi xác minh rằng người dùng chưa bắt đầu viết hoặc chỉnh sửa nội dung nào đó. Tuy nhiên, nếu bạn trả về 'null' hoặc' false', IE sẽ hiển thị một thông báo yêu cầu bạn gần đúng nếu bạn muốn * null * hoặc * false *, đủ kỳ quặc. – KajMagnus
Tôi có thể thực thi bất kỳ mã nào khi nhấp vào nút lưu lại trên trang không? –