Javascript 如何防止在窗口上附加多个处理程序
我有一个JS文件,它在一个网站上被收录了两次Javascript 如何防止在窗口上附加多个处理程序,javascript,event-handling,Javascript,Event Handling,我有一个JS文件,它在一个网站上被收录了两次 由用户包含 由我的Chrome扩展注入 JS代码在窗口上附加一个事件侦听器。由于上面解释的明显原因,此事件侦听器被触发两次而不是一次 此代码似乎工作正常,但我想知道正确的方法 if (typeof customMessageEventListenerAdded == 'undefined') { addListener(window, 'message', handleMessage); customMessageEventLis
- 由用户包含
- 由我的Chrome扩展注入
if (typeof customMessageEventListenerAdded == 'undefined') {
addListener(window, 'message', handleMessage);
customMessageEventListenerAdded = true;
}
我想知道如何正确处理这种情况。我通常这样编写脚本(我通常编写JS来定制Dynamics CRM,但同样的方法应该适合“普通”网页): 多个包含项使
if
gofalse
并跳过代码(显然script
应该是唯一标识符)。所有代码都封装在函数中,我可以控制调用什么以及何时调用和完成
还有其他方法(例如,可以利用
requirejs
,仅举一个例子)。+1个不错的方法。我想我可以去。更好的方法。让我们等待其他人加入更好的方法(如果存在),否则我会接受
if (typeof (window.theScript) == 'undefined') {
window.theScript = {
someValue: ...;
someFunction: function(){ ... };
ctor: function(){ ... };
};
window.theScript.ctor();
}