我继续回到这个问题,并继续以失败告终。
我已经阅读了数十页的说明,并查看了诸如“ 如何使Firefox扩展工具栏按钮自动出现?”之类的答案。在这里,但我做对了。
我了解我需要做的事情的概念,但是我要指出的是,虽然扩展本身可以正常工作,但是我无法init(
运行)函数,并且似乎也未添加任何负载侦听器(I alert
在window.top.addEventListener..
代码之前和之后添加了s,但alert
s均未触发。
我想要实现的是建议的过程,即在安装/更新时添加工具栏按钮,但仅在首次运行/安装时添加。
我的扩展包括:
chrome.manifest
并install.rdf
在扩展根目录中。
一个chrome
包含其它元素的文件夹(extensionName.js
,extensionName.png
,extensionName.xul
,extensionName.css
和icon.png
)。
prefs.js
在defaults/preferences
目录中。这包含extensions.MyExtensionNameButton.firstRunDone
设置为的首选项false
。
该扩展本身可以完全按要求运行(它包括一个工具栏按钮和右键单击上下文菜单项)。
我的extensionName.js
文件包含以下内容(实际的扩展功能在工作时会被修剪掉,并且可能会使问题变得太长):
objMyExtensionNameButton = { // functions that are called by the .xul are in here, init : function() { var firstRunPref = "extensions.MyExtensionNameButton.firstRunDone"; alert("init function run"); if (!Application.prefs.getValue(firstRunPref)) { Application.prefs.setValue(firstRunPref, true); // all the rest of the first run code goes here. alert("this is the first run"); } else { alert("this is NOT the first run"); } } }; window.top.addEventListener("load", function() { objMyExtensionNameButton.init(); }, false);
xul包含.js文件的相关部分如下所示:
安装扩展程序或启动Firefox时,似乎无法运行任何东西-单击工具栏按钮中的扩展程序选项或右键单击菜单可以毫无问题地运行这些功能-这些功能全部包含在一个对象中。
我尝试过在
init()
该对象的内部和外部移动该函数,并且相信可以正确调用它。另一个奇怪的事情是,我似乎在控制台的扩展中看不到任何错误(当我没有将
default/preferences/prefs.js
文件添加到任何一个时,我也没有看到任何错误.xpi
,因此那里似乎也没有任何问题)。谢谢,
调频