gpt4 book ai didi

javascript - onbeforeunload 取消绑定(bind)在 IE 上不起作用

转载 作者:行者123 更新时间:2023-12-03 01:24:18 26 4
gpt4 key购买 nike

我无法在 IE 中取消 onbeforeunload。我不确定问题是什么,但将其设置为未定义没有效果。我想在一定条件下解除事件的绑定(bind)。但在所有其他浏览器中它都可以工作。

代码如下:-

$(document).ready(function(){

window.onbeforeunload = function(){
return '';
}

window.addEventListener('message', function(e) {
if(e.data==="UNBIND_UNLOAD"){
window.onbeforeunload = undefined;
window.close();
}
} , false);

$('#sendParentMessage').click(function(){
window.onbeforeunload = undefined;
window.opener.postMessage('Hi Child How are you!!!','*');
});
});

最佳答案

以正确的方式添加事件并删除它们

var unloadFunction = function () {
return "test";
}
window.addEventListener('beforeunload', unloadFunction)

window.addEventListener('message', function(e) {
if(e.data==="UNBIND_UNLOAD"){
window.removeEventListener('beforeunload', unloadFunction)
window.close();
}
} , false);

或更改代码以在函数内部使用检查,而不是删除它

var isActiveCheck = true
var unloadFunction = function () {
return isActiveCheck ? "test" : undefined;
}
window.addEventListener('beforeunload', unloadFunction)

window.addEventListener('message', function(e) {
if(e.data==="UNBIND_UNLOAD"){
isActiveCheck = false
window.close();
}
} , false);

关于javascript - onbeforeunload 取消绑定(bind)在 IE 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51617898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com