javascript - 如何删除/重置window.onfocus功能?

标签 javascript jquery asp.net-mvc-5

这让我抓狂。

当我加载页面时,我启动一个 window.onfocus 函数:

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 添加到事件名称中,以便您可以专门定位它,而不会影响使用焦点事件的其他代码。

关于javascript - 如何删除/重置window.onfocus功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36716342/

相关文章:

javascript - 使用 HTML5 EventSource 将 CZML 流式传输到 Cesium

javascript - 我们可以使用 jquery 启用浏览器位置吗

javascript - jquery if语句和.each,if语句意外运行

javascript - 更改按钮值 Onclick

javascript - Jquery 可调整大小无法与子类正常工作

c# - 默认情况下,ASP.NET MVC 5 不发送 X-Frame-Options header

c# - 从 Task<> 获取对象

c# - MVC 5 一对多虚拟 ICollection 返回空值?

javascript - 防止我的 node.js 应用程序被操作系统杀死

javascript - $.when 使用多个 fetch() 会破坏 Backbone 模型