2014-02-28 71 views
0

經過一些嚴重的googleing AFAIK,無法更改iframe的http請求標頭。因爲這對我們的應用程序非常重要,有沒有辦法通過瀏覽器擴展(Firefox就足夠了)?通過瀏覽器擴展更改iframe的GET REQUEST標頭

謝謝。

+0

爲了讓事情更清楚,我應該能夠調整用戶代理在JavaScript和應該告訴延長改變UA,或至少一個新的變量添加到http頭像X-User-Agent。 – dakt

回答

0

所以很長一段時間後...

1)安裝Mozilla SDK: Addons SDK

按照說明創建擴展目錄結構

2)在你的lib/main.js腳本:

17 var {Cc, Ci} = require("chrome"); 
18 var data = require("sdk/self").data; 
19 var _header = ""; 
20 
21 
22 // Define observer 
23 var httpRequestObserver = 
24 { 
25  observe: function(subject, topic, data) { 
26   if (topic == "http-on-modify-request") { 
27    var httpChannel = subject.QueryInterface(Ci.nsIHttpChannel); 
28    httpChannel.setRequestHeader("User-Agent", _header, false); 
29   } 
30  } 
31 }; 
32 
33 // Register observer 
34 var observerService = Cc["@mozilla.org/observer-service;1"] 
35         .getService(Ci.nsIObserverService); 
36 
37 observerService.addObserver(httpRequestObserver, "http-on-modify-request", false); 
38 
39 var pageMod = require("sdk/page-mod"); 
40 
41 pageMod.PageMod({ 
42  include: ["*"], 
43  contentScriptFile: data.url("content.js"), 
44  onAttach: function(worker) { 
45   worker.on("message", function(message) { 
46    _header = message; 
47   }); 
48  } 
49 }); 

3)然後在您的數據/ content.js一小段:

1 document.defaultView.addEventListener("message", function(event) { 
    2 
    3  //alert(event.data); 
    4 
    5  self.postMessage(event.data); 
    6 
    7 }, false); 

4)最後,在你的頁面的腳本,你只是做簡單的調用:

window.postMessage("CONST_STR;" + data.foo + ";" + data.bar, "*"); 

因爲它是相當複雜的野獸,一個應該去RTFM爲了更好的理解,否則的話你可以通過與這更好,你不會有藥物或飲料的衝動。

希望它可以幫助別人,某處......

相關問題