当弹出窗口关闭时,我将如何提出一个事件(jQuery或者vanilla Javascript)?

前端之家收集整理的这篇文章主要介绍了当弹出窗口关闭时,我将如何提出一个事件(jQuery或者vanilla Javascript)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当弹出窗口关闭时,或者最好在关闭之前,我想提出一个事件.我将弹出窗口对象存储为对象,但我不知道有什么办法绑定到关闭事件,或者在窗口关闭之前的事件.
var popupWindow = window.open("/popup.aspx","popupWindow","height=550,width=780");

有没有办法使用jQuery订阅关闭事件,还是原始的javascript?我正在使用jQuery,不能添加另一个库,所以如果在jQuery中无法完成,我必须以某种方式滚动自己的事件系统,以便它可以在所有的浏览器上运行.

更新:
我已经尝试在jQuery中使用卸载事件,并且由于某种原因,一旦我的弹出窗口打开而不是关闭它,就会引发事件.如果我使用Firebug设置断点来延迟卸载事件的订阅,那么卸载事件的工作方式应该是,但无论如何,当javascript被允许自然执行时,它不能正常工作.

var popupWindow = window.open("/popup.aspx",width=780");
$(popupWindow.window).unload(function() { alert('hello'); });

有人有什么想法为什么当窗口加载时可以提出卸载事件?

另外一个问题是,我注意到,jQuery的“卸载”事件不会像通常那样保持订阅的窗口,如果我只是这样做:

popupWindow.onunload = function(){alert('hello')};

似乎每次提高事件取消订阅.这是应该发生的吗?如果在jQuery中没有这个错误(或功能?),那么事情会被加载起来,因为我可以检查事件中的popupWindow.closed属性,以确保窗口被真正关闭.

解决方法

我创建了一个检查,如果窗口已被关闭的守望者:
var w = window.open("http://www.google.com","_blank",'top=442,width=480,height=460,resizable=yes',true);
var watchClose = setInterval(function() {
    if (w.closed) {
     clearTimeout(watchClose);
     //Do something here...
    }
 },200);

猜你在找的jQuery相关文章