Как получить 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, возможно, вы могли бы использовать его напрямую или посмотреть его код.