Spec-Zone.ru › Web Extensions

browserAction.setPopup()

Устанавливает HTML-документ, который будет открыт в виде всплывающего окна при нажатии пользователем на значок действия браузера. Вкладки без определённого всплывающего окна будут наследоваться от глобального всплывающего окна, которое по умолчанию соответствует default_popup, указанному в манифесте.

Синтаксис

browser.browserAction.setPopup(
  details // object
)

Параметры

details

Объект со следующими свойствами:

tabId Необязательно

integer. Устанавливает всплывающее окно только для определённой вкладки. Всплывающее окно сбрасывается, когда пользователь переходит в этой вкладке на новую страницу.

windowId Необязательно

integer. Устанавливает всплывающее окно только для указанного окна.

popup

string или null. HTML-файл для отображения во всплывающем окне, указанный в виде URL.

Он может указывать на файл, упакованный в расширение (например, созданный с помощью extension.getURL), или на удалённый документ (например, https://example.org/).

Если здесь передана пустая строка (""), всплывающее окно будет отключено, и расширение получит события browserAction.onClicked.

Если popup равно null:

  • Если tabId указан, удаляет всплывающее окно, специфичное для вкладки, так что вкладка унаследует глобальное всплывающее окно.
  • Если windowId указан, удаляет всплывающее окно, специфичное для окна, так что окно унаследует глобальное всплывающее окно.
  • Если tabId и windowId оба опущены, глобальное всплывающее окно восстанавливается до значения по умолчанию.
  • Если windowId и tabId оба указаны, функция завершается неудачей, и всплывающее окно не устанавливается.
  • Если windowId и tabId оба опущены, устанавливается глобальное всплывающее окно.

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet
setPopup Да 14 45
45–58Всплывающее окно, специфичное для вкладки, не очищается при загрузке новой страницы.
? Да 14 ? ? 57
57–58Всплывающее окно, специфичное для вкладки, не очищается при загрузке новой страницы.
? 15 ?
details_windowId_parameter Нет Нет 62 ? Нет Нет ? ? 79 ? Нет ?
null Нет Нет 59 ? Нет 14 ? ? 79 ? 15 ?

Примеры

Данный код добавляет пару элементов контекстного меню, которые можно использовать для переключения между двумя всплывающими окнами. Обратите внимание, что для создания элементов контекстного меню необходимо установить разрешение «contextMenus» разрешение в манифесте расширения.

function onCreated() {
  if (browser.runtime.lastError) {
    console.log("error creating item:", browser.runtime.lastError);
  } else {
    console.log("item created successfully");
  }
}

browser.contextMenus.create(
  {
    id: "popup-1",
    type: "radio",
    title: "Popup 1",
    contexts: ["all"],
    checked: true,
  },
  onCreated
);

browser.contextMenus.create(
  {
    id: "popup-2",
    type: "radio",
    title: "Popup 2",
    contexts: ["all"],
    checked: false,
  },
  onCreated
);

browser.contextMenus.onClicked.addListener((info, tab) => {
  if (info.menuItemId === "popup-1") {
    browser.browserAction.setPopup({ popup: "/popup/popup1.html" });
  } else if (info.menuItemId === "popup-2") {
    browser.browserAction.setPopup({ popup: "/popup/popup2.html" });
  }
});

Примечание: Этот API основан на API chrome.browserAction Chromium. Данная документация взята из browser_action.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/browserAction/setPopup

Spec-Zone.ru

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