1
我在使用port.emit的時候遇到了一些問題,在我的main.js代碼中。不能在Firefox上使用「port.emit」
我已經嘗試了很多不同的方法來做到這一點,但他們都沒有成功。 這是我的主代碼:
// 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」,我在命令提示符處收到此錯誤:
console.error:
JPM [error] Message: TypeError: this.sandbox is undefined
Stack:
[email protected]://gre/modules/commonjs/toolkit/loader.js -> resource://gre/
modules/commonjs/sdk/content/worker-child.js:75:7
[email protected]://gre/modules/commonjs/toolkit/loader.js -> resource://gre
/modules/commonjs/sdk/event/core.js:112:9
[email protected]://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules
/commonjs/sdk/event/core.js:89:38
[email protected]://gre/modules/commonjs/toolkit/loader.js -> reso
urce://gre/modules/commonjs/sdk/remote/child.js:54:38
[email protected]://gre/components/nsPrompter.js:370:5
[email protected]://gre/components/nsPrompter.js:553:9
[email protected]://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
[email protected]://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules
/commonjs/sdk/loader/sandbox.js:66:12
[email protected]://gre/modules/commonjs/toolkit/loader.js -> resource://gr
e/modules/commonjs/sdk/content/sandbox.js:313:9
[email protected]://gre/modules/commonjs/toolkit/loader.js -> resource://gr
e/modules/commonjs/sdk/content/sandbox.js:275:1
[email protected]://gre/modules/commonjs/toolkit/loader.js -> resource://gre/
modules/commonjs/sdk/core/heritage.js:146:23
[email protected]://gre/modules/commonjs/toolkit/loader.js -> resource://gre/m
odules/commonjs/sdk/content/worker-child.js:52:20
[email protected]://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
[email protected]://gre/modules/commonjs/toolkit/loader.js -> resource://gre
/modules/commonjs/sdk/event/core.js:112:9
[email protected]://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules
/commonjs/sdk/event/core.js:89:38
[email protected]://gre/modules/commonjs/toolkit/loader.js -> reso
urce://gre/modules/commonjs/sdk/remote/child.js:54:38
我是初學者,這是我的第一個插件,我知道,這應該是一些簡單的問題,但我不能解決這個問題。 此外,我的語言(葡萄牙語)沒有文檔。
你說得對。 我不知道爲什麼這個警報是造成麻煩,因爲它被正確編寫。無論如何,我從代碼中刪除了它,現在它已經可以工作了。 謝謝! –