Spec-Zone.ru › Web Extensions

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API