编程语言
首页 > 编程语言> > javascript-Mozilla扩展名称空间:如何区分我的函数和其他软件包的函数?

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