首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在火狐插件上使用"port.emit“

不能在火狐插件上使用"port.emit“
EN

Stack Overflow用户
提问于 2015-10-26 02:55:06
回答 1查看 276关注 0票数 1

在我的port.emit代码中使用main.js有一些问题。

我尝试过很多不同的方法,但都没有成功。这是我的主要代码:

代码语言:javascript
复制
    // main.js
var tabs = require("sdk/tabs"); //
//var data = require("sdk/self").data; //acrescenta a pasta data
var { ToggleButton } = require("sdk/ui/button/toggle");
var dadosCopiados=[];
var worker1; 
var worker2;
var self = require("sdk/self");


var button = ToggleButton({
  id: "copiadorDeDadosDeAcesso",
  label: "Copiador de Dados de Acesso",
  icon: {
    "16": "./icon-16.png",
    "32": "./icon-32.png",
    "64": "./icon-64.png"
  },
  onChange: function(state) {
      if(state.checked==true){
           worker1 = tabs.activeTab.attach({
                contentScriptFile: self.data.url("copiadorDeDados.js")
            });

        worker1.port.on("dadosDeAcesso", function processaDadosDeAcesso(dados) {
        console.log(dados[0]);
        console.log(dados[1]);
        //console.log(worker);
    });

      }
      else{

        worker2 = tabs.activeTab.attach({
           contentScriptFile: self.data.url("coladorDeDados.js")
        });

        worker2.port.emit("teste","my message");

       }
    }


});

port.on命令正在工作。当它通过"port.emit“时,我在命令提示符中接收到此错误:

代码语言:javascript
复制
console.error:
JPM [error]   Message: TypeError: this.sandbox is undefined
  Stack:
    receive@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/
modules/commonjs/sdk/content/worker-child.js:75:7
emitOnObject@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre
/modules/commonjs/sdk/event/core.js:112:9
emit@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules
/commonjs/sdk/event/core.js:89:38
processMessageReceived@resource://gre/modules/commonjs/toolkit/loader.js -> reso
urce://gre/modules/commonjs/sdk/remote/child.js:54:38
openModalWindow@resource://gre/components/nsPrompter.js:370:5
ModalPrompter.prototype.openPrompt@resource://gre/components/nsPrompter.js:553:9

ModalPrompter.prototype.alert@resource://gre/components/nsPrompter.js:605:9
@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/com
monjs/sdk/loader/sandbox.js -> resource://myaddon/data/coladorDeDados.js:2:1
load@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules
/commonjs/sdk/loader/sandbox.js:66:12
importScripts@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gr
e/modules/commonjs/sdk/content/sandbox.js:313:9
WorkerSandbox@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gr
e/modules/commonjs/sdk/content/sandbox.js:275:1
constructor@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/
modules/commonjs/sdk/core/heritage.js:146:23
initialize@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/m
odules/commonjs/sdk/content/worker-child.js:52:20
constructor@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/
modules/commonjs/sdk/core/heritage.js:146:23
@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/com
monjs/sdk/content/worker-child.js:140:16
emitOnObject@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre
/modules/commonjs/sdk/event/core.js:112:9
emit@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules
/commonjs/sdk/event/core.js:89:38
processMessageReceived@resource://gre/modules/commonjs/toolkit/loader.js -> reso
urce://gre/modules/commonjs/sdk/remote/child.js:54:38

我是一个初学者,这是我的第一个评论,我知道这应该是一个简单的问题,但我就是不能解决这个问题。此外,我的语言没有文档(葡萄牙语)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-30 11:33:08

问题在于alert在contentScriptFile中。把这个警告说出来,问题就会解决了。

在您自己的堆栈跟踪中,您可以在这里看到它:

代码语言:javascript
复制
ModalPrompter.prototype.alert@resource://gre/components/nsPrompter.js:605:9
@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/com
monjs/sdk/loader/sandbox.js -> resource://myaddon/data/coladorDeDados.js:2:1

请注意,我也是firefox-addon开发的初学者。如果我的回答有什么问题,请留下评论,让我来解决。

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

https://stackoverflow.com/questions/33337802

复制
相关文章

相似问题

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