Как получить URL вкладки перед загрузкой страницы в Mozilla Addon SDK?

Я создаю аддон для блокировки сайтов по запросу пользователя. Я сделал - получил пользовательский ввод и сохранил в simple-storage. Теперь я хочу получить доступ к URL-адресам вкладок (ей) до загрузки страницы, чтобы я мог обработать URL и получает имя хоста, чтобы заблокировать сайт.

2 ответа

Решение

Вы делаете это с помощью модуля PageMod с onAttach,

pageMod.PageMod({
    contentScriptWhen: 'start', //This says not to wait until the page is ready
    include: ['*'],
    //Forget about contentScript(File), we're not attaching a script
    onAttach: function(worker) {
        var tabUrl = worker.tab.url;
        if(tabUrl==myString) worker.tab.url = 'http://arabcrunch.com/wp-content/uploads/2013/05/block-website.jpeg'
    }
});

Но я рекомендую делать это по-другому. Вместо того, чтобы проверять каждый URL самостоятельно, а затем что-то делать, вы создаете массив URL или частичных URL и устанавливаете include: myArrayOfUrls, Тогда вам не нужно if пункт в onAttach Вы уже знаете, что это один из сайтов, которые вы хотите заблокировать.

Вы можете зарегистрироваться на http-on-modify-request уведомление от службы наблюдателей. Вы получите уведомление непосредственно перед отправкой запроса и сможете получить URL.

См. Следующие ресурсы по теме: Настройка заголовков HTTP-запросов для примера регистрации и Уведомления наблюдателя для списка уведомлений, в которых вы можете зарегистрироваться.

По сути, вы описываете расширение Adblock Plus, возможно, вы могли бы использовать его напрямую или посмотреть его код.

Другие вопросы по тегам