【发布时间】:2016-04-26 06:49:58
【问题描述】:
我是 Firefox Addon SDK 高级 API 的新手。
我想做的是,如果用户单击工具栏上的图标,则会打开一个新选项卡,然后运行 contentscriptfile 中定义的脚本。
我使用下面的脚本:
var self = require("sdk/self");
var tabs = require("sdk/tabs");
var buttons = require('sdk/ui/button/action');
var button = buttons.ActionButton({
id: "mm-link",
label: "Visit mm",
icon: {
"32": "./icon-32.png",
"64": "./icon-64.png"
},
onClick: handleClick
});
function handleClick(state) {
tabs.open("about:blank");
tabs.on('ready', function (tab) {
tab.attach({
contentScriptFile: self.data.url("home.js"),
contentScriptOptions: {"aaa" : "1111", "bob" : "222"}
});
});
}
但它并没有按预期工作,并且存在以下问题:
- 脚本反复运行。 (我希望它在每个新标签上只运行一次)
- 即使我单击“+”图标创建新选项卡,脚本也会 跑。 (我希望它只在单击我在工具栏上创建的图标时运行)
我也试过把'ready'改成'activiate',重复运行的问题就没有了,但是每次创建tab都会运行脚本。
非常感谢任何帮助。
【问题讨论】: