Расширение Chrome для перенаправления пользователя на определенные URL - PullRequest
0 голосов
/ 27 октября 2011

Я хочу создать расширение chrome, которое по существу проверяет, находится ли текущий домен в списке, если это так, перенаправляет пользователя на другой URL-адрес, позволяет ему щелкнуть ссылку и затем переходит к первоначально требуемому URL-адресу.

У меня нет большого опыта работы с расширениями Javascript или Chrome, но это кажется достаточно простым для начинающего проекта.

Я хочу иметь файл этой структуры

urlregex1#redirecttourl1
urlregex2#redirecttourl2
.
.
.

и иметь chrome content_script для анализа каждого URL-адреса и проверки соответствия одного из регулярных выражений.

В этом случае скрипт должен каким-то образом сохранить исходный URL-адрес и затем перенаправить пользователя.

Может кто-нибудь подсказать мне, как это реализовать? Я полностью потерян между функциями JavaScript, расширением API Chrome, ....

1 Ответ

4 голосов
/ 28 октября 2011

Вам нужно настроить функциональность на фоновой странице, чтобы она работала на всех вкладках.

// add listener for all tabs
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    var safesite = false;

    if (changeInfo === "loading") {
        // logic for checking white list, using tab.url

        if (!safesite) {
            chrome.tabs.update(tabId, { url: 'www.google.com' });
        }
    }
});

По сути, вы добавляете прослушиватель событий на все вкладки. При его загрузке вы проверяете, есть ли его в белом списке. Если это черный список сайтов, перенаправьте их на любой URL, который вам нравится. Вы также можете включить .html-файл в каталог расширений, чтобы перенаправить их также. Это срабатывает на всех вкладках, включая веб-инспектор, так что вы можете использовать некоторую логику для проверки только запросов http (s).

Кроме того, этот подход МОЖЕТ кратко показывать страницу, занесенную в черный список, и ТОП перенаправить вас на страницу заблокированную_url.html. Экспериментальный API, webRequest , должен обеспечивать возможность фильтрации запроса ДО загрузки страницы, но вы не сможете загрузить его в Chrome Web Store, пока он не станет частью официального API Chrome. Если это для личного использования, то не стесняйтесь использовать его.

Последний совет для разработки: вы можете отлаживать только background.html через страницу настроек расширений (chrome: // settings / extensionSettings). Откройте развертку для своего расширения, и вы увидите «Проверка активных представлений:», где вы можете щелкнуть ссылку на любые страницы, относящиеся к расширению, которые у вас в данный момент запущены. При этом откроется веб-инспектор для этой страницы.

После долгих царапин на голове я случайно наткнулся на это, и с тех пор это спасает жизнь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...