Подтвердить что ты не робот

Перенаправление URL-адреса в расширение хром

Как я могу перенаправить хром в расширение при посещении данного URL?

Например: когда я посещаю http://yahoo.com/, я хочу, чтобы он перенаправлялся на http://google.com/

4b9b3361

Ответ 1

Есть много вариантов, один из которых сложнее, чем другой.

Первый из них самый лучший, потому что он активирован до того, как страница будет запрошена. Второй может быть активирован после выполнения запроса, но до того, как страница будет отображена ("run_at":"document_start") или после ее отображения ("run_at":"document_end"). Я упомянул последний для полноты, но вы не должны его использовать, потому что другие варианты лучше.

Вот пример использования API webRequest, простого расширения, которое позволяет мне просматривать страницы в заливе Пират, хотя главные хосты сняты моим провайдером (фактический список URL-адресов намного длиннее, но я опустили их для примера).
См. шаблоны соответствия для объяснения в форматах URL.

manifest.json

{
  "name": "The Pirate Bay",
  "description": "Redirect The Pirate Bay to a different host",
  "version": "1.0",
  "manifest_version": 2,
  "background": {"scripts":["background.js"]},
  "permissions": [
    "webRequest",
    "*://thepiratebay.se/*",
    "*://www.thepiratebay.se/*",
    "webRequestBlocking"
  ]
}

background.js

var host = "http://tpb.pirateparty.org.uk";
chrome.webRequest.onBeforeRequest.addListener(
    function(details) {
         return {redirectUrl: host + details.url.match(/^https?:\/\/[^\/]+([\S\s]*)/)[1]};
    },
    {
        urls: [
            "*://piratebay.se/*",
            "*://www.piratebay.se/*"
        ],
        types: ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest", "other"]
    },
    ["blocking"]
);

Ответ 2

Я знаю, что немного опоздал в игре, чтобы ответить на этот вопрос. Тем не менее, я бы хотел ответить на этот вопрос для будущих читателей. Посмотри на

Requestly - расширение Chrome для изменения сетевых запросов.

В настоящее время Вы можете настроить правила для

  1. Перенаправить URL-адрес запроса на другой URL.
  2. Заблокировать некоторые запросы.
  3. Заменить некоторую часть в URL другой строкой
  4. Изменить заголовки (добавить/удалить/изменить заголовки запроса и ответа)

Скриншоты для лучшего понимания:

  • Список правил

List of Rules

  • Карты типа правил

Rule Type Cards

  • Новое правило перенаправления

Creating a Redirect Rule

  • Правило модификации заголовков

Modify Headers

В "дорожной карте" есть много вещей, которые можно

  • Переключение пользовательских агентов

.. и многое другое.

PS: я создал это, так что вы можете обвинить меня, если вы не найдете это полезным :)

Ответ 3

Есть ли способ запустить удалить addListener и дать доступ пользователю после выполнения действия