我试图建立一个非常通用的OnBeforeUnload处理程序:
console.log("WCW - Setting browser warning message");
window.onbeforeunload = function(e) {
e.returnValue = "confirmationMessage";
return e.returnValue;
};
console.log("WCW - onbeforeunload is " +
((window.onbeforeunload ? "set":"still null")));
我了解我所能做的就是向浏览器发出发出一般警告的信号。在以后的迭代中,我可能会在发出return
之前尝试进行一些自我清理。
我的问题是,这段代码运行后,window.onbeforeunload
总是在控制台日志中返回null
。 除非 ,我在任何行上都设置了一个断点(例如,第一个日志消息),然后在停止时只是“ 继续”。然后,它起作用了。
我非常确定“哪里错了”这个问题是没有意义的,所以我问:“您对我如何寻找可能的问题有任何建议吗?”
我不知道这是一个范围的问题吗?第二条日志消息总是说onbeforeunload
不为空...但是window
是全局的,不是吗,调试器如何暂停修复该问题?
注意:
jQuery可用,但使用$(window).on('beforeunload'
会遇到与此代码相同的问题
添加延迟(setTimeout
)设置处理程序不帮助;尝试了2、4和9秒
在打开页面时每4秒添加一个递归调用以添加处理程序不会导致设置处理程序:window.onbeforeunload
始终在控制台中返回NULL
我定期看到该事件附带了一个jQuery核心方法,但这很少见