windows.create()
Создаёт новое окно.
При создании окна вы можете:
- Загрузить одну или несколько новых вкладок в окно.
- Переместить вкладку из существующего окна в новое окно.
- Установить размер и положение окна.
- Создать окно типа «панель», что в данном контексте означает окно без стандартного пользовательского интерфейса браузера (строка адреса, панель инструментов и т. д.).
- Установить различные свойства окна, такие как фокусировка или режим приватности.
Это асинхронная функция, которая возвращает Promise.
Синтаксис
let creating = browser.windows.create( createData // optional object )
Параметры
-
createDataНеобязательный -
object.-
allowScriptsToCloseНеобязательный -
boolean. Когда окно открывается, оно будет содержать одну вкладку или более одной, еслиurlуказано и включает массив, содержащий более одного URL. По умолчанию скрипты, выполняющиеся на этих страницах, не могут закрывать свою вкладку с помощьюwindow.close(). Если вы включитеallowScriptsToCloseи установите его в значениеtrue, то это поведение по умолчанию изменяется, и скрипты смогут закрывать свои вкладки. Обратите внимание, что:- это относится только к вкладкам, открытым при создании окна. Если пользователь откроет в этом окне дополнительные вкладки, скрипты не смогут закрыть эти новые вкладки.
- если URL(ы), указанные в
url, указывают на страницы расширений (то есть, это страницы, включенные в это расширение и загруженные с протоколом "moz-extension:"), то скрипты по умолчанию разрешено закрывать эти вкладки.
-
integer. Если указано, задаётCookieStoreIdдля всех вкладок, которые будут созданы при открытии окна. -
focusedНеобязательный -
boolean. Еслиtrue, новое окно получит фокус. Еслиfalse, новое окно откроется в фоновом режиме, и фокус останется на текущем окне. По умолчаниюtrue. -
heightНеобязательный -
integer. Высота нового окна в пикселях, включая рамку. Если не указано, используется значение по умолчанию. -
incognitoНеобязательный -
boolean. Определяет, должно ли новое окно быть окном инкогнито (приватным). Обратите внимание, что если вы указываетеincognitoиtabId, ID должен относиться к приватной вкладке — то есть, вы не можете переместить не-приватную вкладку в приватное окно. -
leftНеобязательный -
integer. Количество пикселей для позиционирования нового окна от левого края экрана. Если не указано, новое окно позиционируется относительно последнего активного окна. Это значение игнорируется для панелей. (В Firefox это значение игнорируется для всплывающих окон (баг 1271047), но может быть установлено с помощью browser.windows.update().) -
stateНеобязательный -
Значение
windows.WindowState. Начальное состояние окна. Состоянияminimized,maximizedиfullscreenнельзя комбинировать со состояниямиleft,top,widthилиheight. -
tabIdНеобязательный -
integer. Если указано, переместит вкладку с указанным ID из существующего окна в новое окно. -
titlePrefaceНеобязательный -
string. Используйте для добавления строки в начало заголовка окна браузера. В зависимости от операционной системы, это может не сработать в окнах браузера без заголовка (например, about:blank в Firefox). -
topНеобязательный -
integer. Количество пикселей для позиционирования нового окна от верхнего края экрана. Если не указано, новое окно позиционируется относительно последнего активного окна. Это значение игнорируется для панелей. (В Firefox это значение игнорируется для всплывающих окон (баг 1271047), но может быть установлено с помощью browser.windows.update().) -
typeНеобязательный -
Значение
windows.CreateType. Указывает тип окна браузера. Укажитеpanelилиpopupдля открытия окна без стандартного интерфейса браузера (строка адреса, панель инструментов и т. д.). -
urlНеобязательный -
stringилиarraystrings. URL или массив URL-адресов для открытия вкладок в окне. Полные URL-адреса должны включать схему (например,http://www.google.com, а неwww.google.com). Относительные URL-адреса будут относиться к текущей странице внутри расширения. По умолчанию открывается новая вкладка. -
widthНеобязательный -
integer. Ширина нового окна в пикселях, включая рамку. Если не указано, используется значение по умолчанию.
-
Значение, возвращаемое функцией
A Promise, которая будет выполнена с объектом windows.Window, содержащим детали нового окна. Этот объект Window всегда будет иметь свойство tabs, в отличие от объектов Window возвращаемых из windows.get() и аналогичных API, которые содержат tabs только если передан параметр populate. При возникновении ошибки, промис будет отклонен с сообщением об ошибке.
Примеры
Открыть окно с двумя вкладками:
function onCreated(windowInfo) { console.log(`Created window: ${windowInfo.id}`); } function onError(error) { console.log(`Error: ${error}`); } browser.browserAction.onClicked.addListener((tab) => { let creating = browser.windows.create({ url: ["https://developer.mozilla.org", "https://addons.mozilla.org"] }); creating.then(onCreated, onError); });
Открыть окно при нажатии пользователем действия браузера и переместить текущую активную вкладку в него:
function onCreated(windowInfo) { console.log(`Created window: ${windowInfo.id}`); } function onError(error) { console.log(`Error: ${error}`); } browser.browserAction.onClicked.addListener((tab) => { let creating = browser.windows.create({ tabId: tab.id }); creating.then(onCreated, onError); });
Открыть небольшое окно типа «панель» и загрузить в него локальный файл:
function onCreated(windowInfo) { console.log(`Created window: ${windowInfo.id}`); } function onError(error) { console.log(`Error: ${error}`); } browser.browserAction.onClicked.addListener((tab) => { let popupURL = browser.extension.getURL("popup/popup.html"); let creating = browser.windows.create({ url: popupURL, type: "popup", height: 200, width: 200 }); creating.then(onCreated, onError); });
Примеры расширений
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | |
create |
Да | 14 | 45["'url' и 'tabId' параметры нельзя задавать одновременно.", "Возвращаемый объект 'Window' содержит свойство 'tabs' только начиная с версии 52.", "Начиная с Firefox 86, параметрfocused: false игнорируется."] |
? | Да | 14 | ? | ? | Нет | ? | Нет | ? |
Примечание: Этот API основан на chrome.windows API Chromium. Данная документация взята из windows.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/windows/create