我有一个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
仅举一个)。