假设我有两页。其中一个包含另一个内部作为 iframe。如果您在父页面上订阅 onbeforeunload 事件,则当 iframe 处于焦点时关闭选项卡时不会触发此事件。我想这是这里写的一个错误: 谷歌浏览器问题
但我提到,例如,谷歌文档处理这种情况。谁能给我一个解决方案?请注意,我无法实际访问 iframe 内容,因为它是第三方 html 编辑器 (WYSIWYG)。
假设我有两页。其中一个包含另一个内部作为 iframe。如果您在父页面上订阅 onbeforeunload 事件,则当 iframe 处于焦点时关闭选项卡时不会触发此事件。我想这是这里写的一个错误: 谷歌浏览器问题
但我提到,例如,谷歌文档处理这种情况。谁能给我一个解决方案?请注意,我无法实际访问 iframe 内容,因为它是第三方 html 编辑器 (WYSIWYG)。
您也可以尝试将 iframe 的 url 更改为“about:blank”,例如:
$("#myFrameId")[0].src = "about:blank";
它强制 chrome “干净地”关闭 iframe 中包含的窗口。
顺便提一下:如果你只想关闭你的 iframe 而不是父窗口,你必须给 chrome 足够的时间来执行你附加到'onbeforeunload'的处理程序。
以下代码适用于所有浏览器
if (typeof window.addEventListener != 'undefined') {
window.addEventListener('beforeunload', test, false);
}
else if (typeof document.addEventListener != 'undefined') {
document.addEventListener('beforeunload', test, false);
}
else if (typeof window.attachEvent != 'undefined') {
window.attachEvent('onbeforeunload', test);
}
else {
if (typeof window.onbeforeunload == 'function') {
window.onbeforeunload = function() {
test();
};
}
else {
window.onbeforeunload = test;
}
}
function test(){ alert('working');}
试试这个...