如何删除/重置window.onfocus函数

How to remove/reset window.onfocus function?

本文关键字:重置 window onfocus 函数 何删除 删除      更新时间:2023-09-26

这让我抓狂。

当我加载页面时,我会启动一个窗口。焦点函数:

initializeFocusDetecttor: function () {
    window.onfocus = function () {
        var options = {
            useFade: false
        }
        $.OverWatch.worker.getView("/OverWatch/UpdateWatch", function () {
            $.OverWatch.init();
        }, options);
    }
}

然而,我不想在每个页面上都出现这种行为,但我不知道如何删除/重置它。

我试过

window.onfocus = null;
window.onfocus = function(){return;};
window.onfocus = "";

但它不工作

如果将其更改为使用jQuery事件处理,则可以将其删除(例如使用off)。

initializeFocusDetecttor: function () {
    $(window).on('focus.mine', function () {
        var options = {
            useFade: false
        }
        $.OverWatch.worker.getView("/OverWatch/UpdateWatch", function () {
            $.OverWatch.init();
        }, options);
    });
});
// Some condition - turn it off
$(window).off('focus.mine');

本例将自定义名称空间.mine添加到事件名称中,这样您就可以在不影响使用焦点事件的其他代码的情况下专门针对它。