Tôi muốn tăng sự kiện khi cửa sổ bật lên bị đóng hoặc tốt hơn là trước khi đóng. Tôi đang lưu trữ đối tượng cửa sổ popup như một đối tượng, nhưng tôi không biết cách nào để liên kết với sự kiện đóng, hoặc một sự kiện ngay trước khi cửa sổ đóng lại.Làm cách nào để tăng sự kiện (jQuery hoặc vanilla Javascript) khi cửa sổ bật lên bị đóng?
var popupWindow = window.open("/popup.aspx", "popupWindow", "height=550,width=780");
Có cách nào để đăng ký sự kiện đóng bằng jQuery hay chỉ javascript thô? Tôi đang sử dụng jQuery và không thể thêm một thư viện khác, vì vậy nếu nó không thể được thực hiện trong jQuery tôi sẽ phải cuộn hệ thống sự kiện của riêng tôi bằng cách nào đó để nó sẽ làm việc trên tất cả các trình duyệt.
UPDATE:
Tôi đã cố gắng sử dụng các sự kiện dỡ bỏ trong jQuery và vì một lý do sự kiện này được nâng lên càng sớm càng bật lên tôi mở ra thay vì khi nó được đóng lại. Nếu tôi sử dụng Firebug để thiết lập một điểm ngắt để trì hoãn sự kiện unload được đăng ký, sự kiện dỡ bỏ hoạt động theo cách nó được cho là, nhưng vì lý do nào đó, nó không hoạt động chính xác khi javascript được phép thực thi một cách tự nhiên.
var popupWindow = window.open("/popup.aspx", "popupWindow", "height=550,width=780");
$(popupWindow.window).unload(function() { alert('hello'); });
Có ai có bất kỳ ý tưởng nào về lý do tại sao sự kiện dỡ hàng có thể tăng lên khi cửa sổ đang tải không?
Một bắt khác là tôi đã nhận thấy rằng "dỡ bỏ" sự kiện của jQuery không ở lại đăng ký vào cửa sổ như nó thường làm nếu tôi chỉ làm:
popupWindow.onunload = function(){alert('hello')};
Dường như để bỏ đăng ký từ sự kiện này mỗi thời gian nó được nâng lên. Đây có phải là vụ xảy ra? Nếu nó không được cho lỗi này (hoặc tính năng?) Trong jQuery, nó sẽ là tốt để có sự kiện được nâng lên khi tải kể từ khi tôi có thể kiểm tra các tài sản popupWindow.closed
bên trong của sự kiện để đảm bảo cửa sổ đã thực sự đóng cửa.
vĩ đại, điều này giải quyết vấn đề của tôi;) –