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