javascript-Mozilla扩展名称空间:如何区分我的函数和其他软件包的函数?
作者:互联网
我正在开发Firefox(FF)扩展,并在按下FF上的特定按钮时调用函数.有时,FF即使从那里也无法从我的脚本文件中找到我的函数.而是在浏览器扩展中搜索它并抛出错误.
通常,如何在函数之前使用命名空间,以将其与其他程序包中具有相同名称的函数区分开来.
例如:是否有类似的东西:
<script type="application/javascript" src="chrome://mythird/content/script.js"/>
<statusbar id="status-bar">
<statusbarpanel id="mythird-statusbarpanel" label="mythird" onclick="chrome://mythird/myalert();"/>
</statusbar>
不仅仅是:
<statusbarpanel id="mythird-statusbarpanel" label="mythird" onclick="myalert();"/>
解决方法:
您可以使用普通对象作为函数的名称空间.给对象命名扩展名(它应该是唯一的并且很棒),并且您应该很漂亮.
在脚本文件中:
var gYourExtensionName = {};
gYourExtensionName.myalert = function(){/*...*/};
在XUL中:
<script type="application/javascript" src="chrome://mythird/content/script.js"/>
<statusbar id="status-bar">
<statusbarpanel id="mythird-statusbarpanel"
label="mythird"
onclick="gYourExtensionName.myalert()" />
</statusbar>
您还应该阅读:Firefox Extensions: Global Namespace Pollution
标签:xul,firefox,firefox-addon,javascript 来源: https://codeday.me/bug/20191208/2095249.html