无法在卸载前事件重设寡妇

时间:2019-09-17 07:32:58

标签: javascript jquery

我有两个功能,一个用于设置beforeunload,另一个用于将其删除为:

function setOnBeforeLoad(){
    console.log('setOnBeforeLoad');
    $(window).on('beforeunload', function(){
        return 'abc';
    });
}
function removeOnBeforeLoad(){
    console.log('removeOnBeforeLoad');
    $(window).on('beforeunload', function(){
            // return undefined;
            // return null;
    });
}

一旦添加了onbeforeload事件,我将无法删除它。因此,它防止了不必要的重装。

我尝试不返回任何内容,undefinednull。但是,似乎没有任何效果。有什么我想念的吗?

2 个答案:

答案 0 :(得分:1)

为此尝试使用jQuery namespaces(和.off()删除事件)

function setOnBeforeLoad(){
    console.log('setOnBeforeLoad');
    $(window).on('beforeunload.somenamespace', function(){
        return 'abc';
    });
}
function removeOnBeforeLoad(){
    console.log('removeOnBeforeLoad');
    $(window).off('beforeunload.somenamespace');
}

答案 1 :(得分:0)

使用

$(window).off('beforeunload')