Firefox插件:为什么面板中的self.port'的contentscript未定义
Firefox addon: Why the self.port in the panel's contentscript is undefined?
我在开发Firefox插件时遇到了一件奇怪的事情:我写了这样的代码(我将注释代码从Chrome扩展转换为Firefox插件代码):
function sendStoreIdentitiesMessage(identities, remember){
console.log("Storing identities: "+identities.length);
if(remember==null){
remember=false;
}
//extension.sendMessage({type:"save.identities", identities:identities, remember:remember}, function(response) {
// identitiesNum=identities.length;
// identitiesDate=new Date();
// sendGetPageIdsMessage(function(){showCodeImageSuccess();});
//});
self.postMessage({type:"save.identities", identities:identities, remember:remember});
self.port.on("response.save.identities",function(response){
identitiesNum=identities.length;
identitiesDate=new Date();
sendGetPageIdsMessage(function(){showCodeImageSuccess();});
});
}
当我用AddonBuilder编译它时,它会得到错误:
"错误:NS_Error_XPC_NOT_ENOUGH_ARGS:参数不足[nsIDOMWindow.postMessage]"
然后我把代码改成这样:
function sendStoreIdentitiesMessage(identities, remember){
console.log("Storing identities: "+identities.length);
if(remember==null){
remember=false;
}
//extension.sendMessage({type:"save.identities", identities:identities, remember:remember}, function(response) {
// identitiesNum=identities.length;
// identitiesDate=new Date();
// sendGetPageIdsMessage(function(){showCodeImageSuccess();});
//});
self.port.emit("message",{type:"save.identities", identities:identities, remember:remember});
self.port.on("response.save.identities",function(response){
identitiesNum=identities.length;
identitiesDate=new Date();
sendGetPageIdsMessage(function(){showCodeImageSuccess();});
});
}
我又犯了一个错误:
TypeError:self.port未定义。
那么,怎么了?
将self
更改为addon
。详细文档在此处。
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- $window.ga在AngularJS事件中未定义
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何消除代码中的未定义和其他问题
- 未捕获的ReferenceError:$未定义
- this.router在AngularJS 2中未定义
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 节点fs.stat名称未定义
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- Jquery未定义函数正在停止其他操作
- AngularJS指令出错-无法读取属性'编译'的未定义
- 这.SOMETHING 总是返回未定义的 - extjs
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- Wordpress中带有JQuery Accordion的未定义匿名函数
- Firefox插件:为什么面板中的self.port'的contentscript未定义