webNavigation.onBeforeNavigate
Вызывается, когда браузер собирается начать событие навигации.
Синтаксис
browser.webNavigation.onBeforeNavigate.addListener( listener, // function filter // optional object ) browser.webNavigation.onBeforeNavigate.removeListener(listener) browser.webNavigation.onBeforeNavigate.hasListener(listener)
События имеют три функции:
addListener(callback)-
Добавляет обработчик к этому событию.
removeListener(listener)-
Прекращает прослушивание этого события. Аргумент
listener— это обработчик, который нужно удалить. hasListener(listener)-
Проверяет, зарегистрирован ли
listenerдля этого события. Возвращаетtrueесли он прослушивает,falseв противном случае.
Синтаксис addListener
Параметры
callback-
Функция, которая будет вызвана при возникновении этого события. Функция получит следующие аргументы:
details-
object. Детали о событии навигации. Более подробную информацию см. в разделе details.
-
filterНеобязательно -
object. Объект, содержащий единственное свойствоurl, которое является массивом объектовevents.UrlFilter. Если вы включите этот параметр, событие будет срабатывать только для переходов на URL-адреса, которые соответствуют хотя бы одномуUrlFilterв массиве. Если вы опустите этот параметр, событие будет срабатывать для всех переходов.
Дополнительные объекты
details
tabId-
integer. Идентификатор вкладки, в которой произойдет навигация. url-
string. URL, на который перейдет заданный фрейм. processId-
integer. Идентификатор процесса, в котором отображается эта вкладка (Это свойство не поддерживается в Firefox и устарело в Chrome). frameId-
integer. Фрейм, в котором собирается произойти навигация.0указывает, что навигация происходит в контексте верхнего уровня просмотра вкладки, а не вложенном<iframe>. Положительное значение указывает, что навигация происходит во вложенном iframe. Идентификаторы фреймов уникальны для заданной вкладки и процесса. parentFrameId-
integer. Идентификатор родительского фрейма. Установлено в-1если это фрейм верхнего уровня. timeStamp-
number. Время, когда браузер собирается начать навигацию, в миллисекундах с начала эпохи.
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | |
onBeforeNavigate |
ДаЕсли параметр filter пустой, Chrome сопоставляет все URL. |
14Фильтрация не поддерживается. |
45["Фильтрация поддерживается начиная с версии 50.", "Если параметр filter пустой, Firefox выдает исключение."] |
? | 17Если параметр filter пустой, Opera сопоставляет все URL. |
14Если параметр filter пустой, Safari сопоставляет все URL. |
? | ? | 48["Фильтрация поддерживается начиная с версии 50.", "Если параметр filter пустой, Firefox выдает исключение."] |
? | 15Если параметр filter пустой, Safari сопоставляет все URL. |
? |
Примеры
Выводит целевые URL для onBeforeNavigate, если имя хоста целевого адреса содержит "example.com" или начинается с "developer".
const filter = { url: [ {hostContains: "example.com"}, {hostPrefix: "developer"} ] } function logOnBefore(details) { console.log(`onBeforeNavigate to: ${details.url}`); } browser.webNavigation.onBeforeNavigate.addListener(logOnBefore, filter);
Примечание: Этот API основан на API chrome.webNavigation Chromium. Данная документация основана на web_navigation.json кода Chromium.
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webNavigation/onBeforeNavigate