繼this指導,我做了一點變化,我不斷收到此錯誤:self.port是不確定的誤差在Mozilla插件SDK 1.8]
self.port在基地未定義 .js文件[我的內容代碼]
這裏我附加代碼:
PageMod({
include: [data.url('base.html')],
contentScriptWhen: 'start',
contentScriptFile: [data.url('jquery-1.7.2.min.js'),data.url('jquery-ui-1.8.21.custom.min.js'),data.url('base.js')],
contentStyleFile: [data.url('css/mint-choc/jquery-ui-1.8.21.custom.css'),data.url('css/base.css')],
onAttach: function(worker) {
worker.port.on("request", function(txt) {
console.log(txt);
worker.port.emit("response","response for "+txt);
});
}
});
和我內容代碼:
// initialized by jQuery
$(function() {
self.port.on("response",function(txt){console.log("response "+txt);}) //this line is where the error point to.
$('#tabs').tabs();
testLoadLinks();
});
function testReceiveRequest(request) {
console.log('received:',request);
self.port.emit("request",request);
}
我使用的是SDK版本1.8瀏覽器編輯,有人可以幫我解決這個問題?
對於我在內容腳本中使用self.port的情況,我不清楚什麼是壞的,以及像這樣的例子(https://builder.addons.mozilla.org/addon/1065275/latest/)可以正常工作。 – canuckistani 2012-07-11 23:27:04
@canuckistani我複製了你的代碼,並在main.js中改變了第14行,你忘記了worker.on中的端口,它的工作方式應該如此。但是當我拉螢火蟲並鍵入self.port.emit('from-content-script','test123')我仍然得到self.port是未定義的錯誤,這個函數只能在有限的時間內使用嗎?在我的代碼中,只有當DOM準備就緒時,jQuery纔會調用該函數,也許當DOM準備就緒時,self.port已經「消失」了? – 2012-07-12 01:02:18
'self.port.on'只存在於內容腳本的單獨範圍內,並且絕對沒有在主頁面範圍中定義。有關內容腳本的更多信息,請參閱文檔:https://addons.mozilla.org/en-US/developers/docs/sdk/1.8/dev-guide/guides/content-scripts/index.html – canuckistani 2012-07-12 06:57:28