如何防止在窗口上附加多个处理程序



我有一个JS文件,并且在网站上被包含在两次。

  • 用户包括
  • 由我的Chrome Extension注射

JS代码将事件侦听器附加在窗口上。由于上述明显的原因,此事件的听众被解雇了两次,而不是一个。

此代码似乎工作正常,但是我想知道正确的方法

if (typeof customMessageEventListenerAdded == 'undefined') {
    addListener(window, 'message', handleMessage);
    customMessageEventListenerAdded = true;
}

我想知道如何正确处理这种情况。

我通常像这样撰写我的脚本(我通常写JS来自定义Dynamics CRM,但相同的方法应适合"正常"网页):

if (typeof (window.theScript) == 'undefined') {
    window.theScript = {
        someValue: ...;
        someFunction: function(){ ... };
        ctor: function(){ ... };
    };
    window.theScript.ctor();
}

多个夹杂物使if GO false并跳过代码(显然theScript应该是唯一的标识符)。所有代码都包裹在功能中,我可以控制所谓的内容以及何时呼叫和完成。

其他方法在那里(即一个人可以利用requirejs仅举一个)。

相关内容

  • 没有找到相关文章

最新更新