Spec-Zone.ru › Web Extensions

action.setPopup()

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

Примечание: Этот API доступен в манифесте версии 3 или выше.

Синтаксис

browser.action.setPopup(
  details // object
)

Параметры

details

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

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

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

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

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

popup

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

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

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

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

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

Примеры

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

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.action.setPopup({ popup: "/popup/popup1.html" });
  } else if (info.menuItemId === "popup-2") {
    browser.action.setPopup({ popup: "/popup/popup2.html" });
  }
});

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet
setPopup 88 88 109 ? 74 Нет ? ? 109 ? Нет ?

Примечание: Этот API основан на API chrome.action 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/action/setPopup

Spec-Zone.ru

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