【问题标题】:Chrome Extension Modifying User AgentChrome扩展修改用户代理
【发布时间】:2012-01-28 02:08:24
【问题描述】:

是否可以从 chrome 扩展中修改用户代理?

我正在为 Web 开发人员开发一个扩展程序(是的,我知道 Chrome 有自己的扩展程序)。

有什么想法吗?

【问题讨论】:

    标签: google-chrome google-chrome-extension


    【解决方案1】:

    为 Android 更改用户代理的示例代码。

    var MOBILE_CHROME_USER_AGENT = 'Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build/IML74K) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7';
    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 = MOBILE_CHROME_USER_AGENT;
                    break;
                }
            }
            return {requestHeaders: details.requestHeaders};
        }, {urls: ['<all_urls>']}, ['blocking', 'requestHeaders']);
    

    【讨论】:

    • 效果很好!请务必在清单权限中包含webRequestwebRequestBlocking,否则 chrome.webRequest 将是未定义的
    • 一些网站也寻找 javascript 用户代理。请参阅 stackoverflow.com/questions/23202136/… 以在扩展中更改它
    【解决方案2】:

    WebRequest API 不再是实验性的;你可以在它的新家阅读所有关于它的信息: chrome.webRequest

    是的,您可以使用它来更改 User-Agent 标头。

    【讨论】:

      【解决方案3】:

      有用于这些目的的实验性WebRequest API。您可以阻止 URL 请求、更改请求标头等。当然,如果您的代码使用 Chrome 扩展程序的实验性功能,您还不能将扩展程序上传到 Chrome 网上应用店。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-20
        • 2014-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-22
        相关资源
        最近更新 更多