莫兹拉插件.required(SDK/tabs).attach() 不起作用
mozilla addon. required(sdk/tabs).attach() not working
我开始为Firefox开发插件,但我遇到了一个问题。
var tabs = require('sdk/tabs');
tabs.on('ready', function (tab) {
tab.attach({
contentScript: "alert('azaza');",
onMessage: function(message) {
console.log("message");
}
});
})
当我尝试在 Firefox 每晚 36 中执行此代码时,它说"类型错误:窗口为空",但在每晚 32 中它工作正常!在最后一个 fierfox(不是每晚)中,此代码也不起作用。
我尝试在每晚的浏览器调试器控制台中执行此代码,但结果相同(窗口为空)。
我可以看到,在sdk/tabs/utils中.js browser.contentWindow是空的。我认为这是我的窗口对象,但为什么它是空的?
我能够使用以下代码重现此问题:
var { ActionButton } = require("sdk/ui/button/action");
var self = require("sdk/self");
var tabs = require('sdk/tabs');
var button = ActionButton({
icon: self.data.url("icon-16.png"),
id: "my-button",
label: "my button",
onClick: function() {
tabs.open({
url: self.data.url("text-entry.html")
});
tabs.activeTab.attach({
contentScript: "alert('azaza');"
});
}
});
要解决此问题,我必须使用onOpen
而不是使用activeTab
:
var button = ActionButton({
icon: self.data.url("icon-16.png"),
id: "my-button",
label: "my button",
onClick: function() {
tabs.open({
url: self.data.url("text-entry.html"),
onOpen: function() {
tabs.activeTab.attach({
contentScript: "alert('azaza');"
});
}
});
}
});
也许您在无法使用attach
方法时使用它?
相关文章:
- 在chrome.tabs.onCreated之后加载HTML页面
- chrome.tabs.update() 重定向到 'chrome-extension://invalid/'
- Chrome扩展,Chrome.tabs.query的结果未定义
- primefaces jquery ui tabs
- chrome.tabs.create的回调不会在弹出窗口中触发
- Chrome扩展插件:runtime.last运行tabs.get/tabs.remove时出错:没有id为0的选项卡
- SharePoint Javascript - Tabs absolute top;如何插入上面的图像
- 用新的jQuery和jQuery ui替代.tabs(“添加”、链接、标题)
- 在chrome.tabs.executeScript内的javascript函数中传递参数
- Angular Material Tabs内部的Fabricjs画布;不起作用
- 是否可以使用chrome.tabs.sendmessage从内容脚本向背景页发送消息
- 如何在调试tabs.executeScript时使用console.log
- 调用chrome.tabs.query后,结果不可用
- Jquery选项卡容器不工作(未检测到,tabs()函数)
- chrome.tabs.query:属性'currentWindow':想不到的
- 调用chrome.tabs.executeScript中的函数
- chrome.tabs.onUpdated返回了一个没有'不存在
- 两个docready()事件正在使用jQuery.tabs();进行激发;
- chrome.tabs.executeScript:不;当我试图将图片插入特定网站时,它不起作用
- 莫兹拉插件.required(SDK/tabs).attach() 不起作用