Вопрос по javascript, google-chrome, http-headers, google-chrome-extension, user-agent – Свяжите пользовательский агент с определенной страницей / вкладкой Google Chrome

6

Я разрабатываю расширение Google Chrome и хочу настроить определенный пользовательский агент на вкладку / страницу или на всплывающее окно (iframe, отображаемый как «всплывающее окно»), не затрагивая другие страницы или вкладки.

Является ли это возможным?

Ваш Ответ

1   ответ
16

webRequest API может использоваться для изменения заголовка User Agent.
old заголовки. Я проверил, что заголовки установлены правильно, используяNetcat (nc -l 127.0.0.1 -p 6789).

В приведенном ниже примере код активируется наall Вкладки. Настроитьфильтр запроса чтобы удовлетворить ваши требования. добавлятьtabId чтобы ограничить функциональность этого фильтра с помощью tabId ваших вкладок (доступных через различные API,chrome.tabs особенно).

background.js
chrome.webRequest.onBeforeSendHeaders.addListener(
    function(info) {
        // Replace the User-Agent header
        var headers = info.requestHeaders;
        headers.forEach(function(header, i) {
            if (header.name.toLowerCase() == 'user-agent') { 
                header.value = 'Spoofed UA';
            }
        });  
        return {requestHeaders: headers};
    },
    // Request filter
    {
        // Modify the headers for these pages
        urls: [
            "http://stackoverflow.com/*",
            "http://127.0.0.1:6789/*"
        ],
        // In the main window and frames
        types: ["main_frame", "sub_frame"]
    },
    ["blocking", "requestHeaders"]
);
manifest.json
{
  "name": "WebRequest UA test",
  "version": "1.0",
  "permissions": ["webRequest", "webRequestBlocking", "http://*/*"],
  "background": {
    "scripts": ["background.js"]
  },
  "manifest_version": 2
}
Documentation chrome.webRequest.onbeforeSendHeaders event The Request filter
Аааа, инструменты разработчика показываютold заголовки. Спасибо чувак.

Похожие вопросы