2013-10-13 43 views
0

我希望能夠從我的插件發送一個請求(與頁面的餅乾)當使用mozilla firefox sdk時,如何訪問工作腳本中的請求?

var widgets = require("sdk/widget"); 
var tabs = require("sdk/tabs"); 
var self = require("sdk/self"); 
var Request = require("sdk/request").Request; 
var widget = widgets.Widget({ 
id: "mozilla-link", 
label: "Mozilla website", 
contentURL: "http://www.favicon.cc/logo3d/33101.png", 
onClick: function() { 
    var worker = tabs.activeTab.attach({ 
     contentScriptFile: self.data.url('scanner.js') 

    }); 

    worker.port.emit('scanner'); 
} 
}); 

和工人腳本

self.port.on("scanner", function() { 
var http = Request({ url:'..', onComplete: function(Response) {}}).get(); 
}); 

,但據我所知,請求不被定義...即使我嘗試在工作者腳本中定義它。

ReferenceError: Request is not defined 

回答

1

頁工人就像任何其他的網頁,所以在工人,你會使用XMLHttpRequest。如果你想使用請求,你必須在你的插件的main.js文件中這樣做。如果你想跨域請求,您將需要設置的權限屬性在你的package.json文件:

https://github.com/mozilla/addon-sdk/blob/master/doc/dev-guide-source/guides/content-scripts/cross-domain.md

+0

,因爲我想做一個跨域請求,這並沒有解決我的問題。 – Arian

+0

你可以在當前版本的SDK中對特定的URL進行跨域請求。請從github上獲得更多關於如何設置的詳細信息:https://github.com/mozilla/addon-sdk/blob/master/doc/dev-guide-source/package-spec.md – canuckistani

+0

您仍然不會不明白。我想在我的工作者腳本中執行跨域請求來回報。我不想在我的主要劇本中做這些。 – Arian

相關問題