首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >self.port支持` `cfx run`,但在普通浏览器中使用` `cfx xpi`会导致错误

self.port支持` `cfx run`,但在普通浏览器中使用` `cfx xpi`会导致错误
EN

Stack Overflow用户
提问于 2014-04-18 17:33:39
回答 1查看 98关注 0票数 0

我有一个通过pageMod.PageMod调用显示的页面。在我传递的脚本和显示的html中,我使用self.port.on监听需要反映在所显示的页面中的底层数据的更改。

如果我使用cfx run运行我的插件,我有一个功能齐全的插件,它可以毫无问题地工作。

但是,如果我使用cfx xpi打包我的插件,然后转到我的“普通”firfox浏览器,并使用文件->打开文件安装插件,插件安装完成后,我在浏览器控制台中收到一条错误消息,提示TypeError: self.port is undefined

如果我运行cfx run,浏览器版本是28.0,和我的“普通”浏览器一样。为什么它可以在cfx上运行,而不能在我的普通浏览器上运行?

下面是导致错误的代码,但我不认为它会有帮助(options.js):

代码语言:javascript
复制
/*************************************************
* MESSAGE RECEIVED WHEN A
* CHANGE IS MADE TO UNDERLYING DATA
* USED BY THIS PAGE
**************************************************/
self.port.on("username", function(data){
        console.log("received username data");
        if(data=="false"){
                lg = false;
        }else{
                lg = true;
                username = data;
        }
        //update page
        k();
});

为了添加更多的上下文,下面是pagemode是如何实例化/调用的:

代码语言:javascript
复制
function init(cb){
        var menuitem = require("menuitems").Menuitem({
          id: "clickme",
          menuid: "menu_ToolsPopup",
          label: "Tetherly Options",
          onCommand: function() {
                menuitem_onclicked(cb);
          },
          insertbefore: "menu_pageInfo"
        });
}

function menuitem_onclicked(cb){
        console.log("clicked");
        //open a new tab with options page...
        //attach page mod script to it...

        pageMod.PageMod({
                include: self.data.url("html/options.html"),
                contentScriptFile: [
                        self.data.url("js/jquery-1.11.0.js"),
                        self.data.url("js/options.js")
                        ],
                onAttach: function(worker) {
                        pagemode_onattach(worker,cb);
                }

        });
        tabs.open(self.data.url("html/options.html"));
}
EN

回答 1

Stack Overflow用户

发布于 2014-04-18 17:52:18

所以错误出在我的package.json文件上。

我替换了这一行:

代码语言:javascript
复制
"dependencies": ["menuitems", "addon-sdk"]

通过以下方式:

代码语言:javascript
复制
"dependencies": ["menuitems"]

问题就解决了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23151360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档