2011-11-02 49 views
1

在Firefox擴展,我們可以這樣做:Chrome擴展:修改用戶代理字符串

var _prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); 
var httpHandler = Cc["@mozilla.org/network/protocol;1?name=http"].getService(Ci.nsIHttpProtocolHandler); 
setCharPref("general.useragent.override",httpHandler.userAgent + " OurUAToken/1.0"); 

要在用戶代理字符串的末尾添加「OurUAToken/1.0」。

我們如何在Google Chrome中複製此行爲?

回答

1

您可以使用WebRequest API:http://code.google.com/chrome/extensions/trunk/experimental.webRequest.html

不幸的是,它仍然處於實驗階段。我認爲它會在Chrome 17版本中穩定發佈。

+0

另外,看看這篇文章:http://weblog.bocoup.com/spoofing-user-agent-with-chromes-webrequest-api –

+0

偉大的,但不幸的是我不能在這個實驗性的API使用,項目。但你的回答仍然正確。謝謝 –

3

不確定是否有人仍然在尋找解決方案,但是之前建議的chrome.webRequest API現在非常穩定。

chrome.webRequest.onBeforeSendHeaders.addListener(
    function(details) { 
    for (var i = 0; i < details.requestHeaders.length; ++i) { 
     if (details.requestHeaders[i].name === 'User-Agent') { 
     details.requestHeaders[i].value = details.requestHeaders[i].value + ' OurUAToken/1.0'; 
     } 
     break; 
    } 
    return { requestHeaders: details.requestHeaders }; 
    }, 
    {urls: ['<all_urls>']}, 
    ['blocking', 'requestHeaders'] 
); 

一個鍍鉻的擴展,Requestly已經有類似的實現,以允許覆蓋用戶代理字符串在瀏覽器中打開的任何網頁。


欲瞭解更多信息,請訪問博客:https://medium.com/@requestly_ext/switching-user-agent-in-browser-f57fcf42a4b5

的擴展也適用於Firefox。詳情請訪問http://www.requestly.in