webNavigation.onCreatedNavigationTarget
Вызывается при создании нового окна или новой вкладки в существующем окне для размещения целевого объекта навигации. Например, это событие отправляется, когда:
- пользователь открывает ссылку в новой вкладке или окне
- веб-страница загружает ресурс в новую вкладку или окно с помощью
window.open()(обратите внимание, что событие не отправляется, если блокировщик всплывающих окон браузера заблокировал загрузку).
Событие не отправляется, если вкладка или окно созданы без целевого объекта навигации (например, если пользователь открывает новую вкладку, нажав Ctrl+T).
Если это событие срабатывает, оно будет вызвано до webNavigation.onBeforeNavigate.
Синтаксис
browser.webNavigation.onCreatedNavigationTarget.addListener( listener, // function filter // optional object ) browser.webNavigation.onCreatedNavigationTarget.removeListener(listener) browser.webNavigation.onCreatedNavigationTarget.hasListener(listener)
События имеют три функции:
addListener(callback)-
Добавляет обработчик для этого события.
removeListener(listener)-
Прекращает прослушивание этого события. Аргумент
listener— это обработчик, который нужно удалить. hasListener(listener)-
Проверяет, зарегистрирован ли
listenerдля этого события. Возвращаетtrueесли обработчик прослушивает событие,falseв противном случае.
Синтаксис addListener
Параметры
callback-
Функция, которая будет вызвана при возникновении этого события. Функции будут переданы следующие аргументы:
details-
object. Сведения о событии навигации. Дополнительную информацию см. в разделе details.
-
filterНеобязательно -
object. Объект, содержащий единственное свойствоurl, которое является массивом объектовevents.UrlFilter. Если вы включите этот параметр, событие будет срабатывать только для переходов на URL-адреса, которые соответствуют хотя бы одномуUrlFilterв массиве. Если вы опустите этот параметр, событие будет срабатывать для всех переходов. Обратите внимание, чтоfilterв Firefox не поддерживается.
Дополнительные объекты
details
sourceFrameId-
integer. Идентификатор фрейма, из которого инициирована навигация.0указывает, что фрейм является верхнеуровневым контекстом просмотра вкладки, а не вложенным<iframe>. Положительное значение указывает, что навигация инициирована из вложенного iframe. Идентификаторы фреймов уникальны для данной вкладки и процесса. sourceProcessId-
integer. Идентификатор процесса, из которого инициирована навигация. sourceTabId-
integer. Идентификатор вкладки, из которой инициирована навигация. Например, если пользователь открывает ссылку в новой вкладке, это будет идентификатор вкладки, содержащей ссылку. tabId-
integer. Идентификатор новой вкладки. timeStamp-
number. Время, когда браузер создал целевой объект навигации, в миллисекундах с начала эпохи. url-
string. URL, который будет загружен в новую вкладку. windowId-
number. Идентификатор окна, в котором создана новая вкладка.
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
onCreatedNavigationTarget |
ДаЕсли заблокированный всплывающий элемент разблокирован пользователем, событие все равно не отправляется. |
14 | 54["Если параметр фильтра пустой, Firefox генерирует исключение.", "Если заблокированный всплывающий элемент разблокирован пользователем, событие затем отправляется."] |
? | 17Если заблокированный всплывающий элемент разблокирован пользователем, событие все равно не отправляется. |
Нет | ? | ? | 54["Если параметр фильтра пустой, Firefox генерирует исключение.", "Если заблокированный всплывающий элемент разблокирован пользователем, событие затем отправляется.", "Это событие отправляется только в случае 'window.open()'."] |
? | Нет | ? |
sourceProcessId |
Да | 14 | Нет | ? | 17 | Нет | ? | ? | Нет | ? | Нет | ? |
windowId |
Нет | 14–79 | 54 | ? | 17 | Нет | ? | ? | 54 | ? | Нет | ? |
Примеры
Выводит целевой URL, идентификатор исходной вкладки и идентификатор исходного фрейма для onCreatedNavigationTarget, если имя хоста целевого объекта содержит "example.com" или начинается с "developer".
const filter = { url: [ {hostContains: "example.com"}, {hostPrefix: "developer"} ] } function logOnCreatedNavigationTarget(details) { console.log(`onCreatedNavigationTarget: ${details.url}`); console.log(details.sourceTabId); console.log(details.sourceFrameId); } browser.webNavigation.onCreatedNavigationTarget.addListener(logOnCreatedNavigationTarget, 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/onCreatedNavigationTarget