Загрузочное расширение Firefox: как перехватывать события навигации перед запросом страницы?

Я создаю загрузочное расширение Firefox, используя SDK дополнений Mozilla (не традиционный XUL аддон, как и другие подобные вопросы).

Я хочу фиксировать события навигации до того, как они отправят HTTP-запросы.

Я использовал pageMod.PageMod({contentScriptWhen: "start", onAttach: MY_CODE_HERE}), однако он срабатывает только при включении после загрузки страницы.

Это подкрепляется документацией SDK:

contentScriptWhen = "start": загружать сценарии содержимого сразу после элемента документа, вставленного в DOM, но до загрузки самого содержимого DOM.

Можно ли в загружаемом расширении Firefox фиксировать события навигации до загрузки страницы?


person montogos    schedule 07.10.2013    source источник
comment
Как вы определяете навигационное событие?   -  person paa    schedule 09.10.2013
comment
Переход на новую страницу в окне верхнего уровня либо путем нажатия ссылки или закладки, либо путем ввода адреса в адресной строке.   -  person montogos    schedule 09.10.2013


Ответы (1)


Вы можете перехватывать и обрабатывать запросы через системные события SDK: Как обрабатывать каждый запрос в расширении FF

Вам не нужен pagemod, так как он находится на уровне Firefox, а не на уровне каждой вкладки, как pagemod.

person jsantell    schedule 09.10.2013
comment
Это не будет перехватывать события навигации, которые не приводят к HTTP-запросам (например, страницы, доступ к которым осуществляется через BFCache) - person paa; 11.10.2013
comment
Правильно; вы запросили HTTP-запросы до того, как они произошли - bfcache происходит локально за пределами сети. Если вы хотите перехватывать события bfcache, можете использовать событие tabs модулей 'pageshow', чтобы узнать, были ли они извлечены из кеша или нет. событие pageshow - person jsantell; 12.10.2013