Spec-Zone.ru › Web Extensions

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:"), то скрипты по умолчанию разрешено закрывать эти вкладки.
cookieStoreId Необязательный

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 или array strings. 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);

});

Примеры расширений

  • store-collected-images
  • window-manipulator

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

Рабочий стол Мобильные устройства
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.

См. также

  • window.open

© 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

Spec-Zone.ru

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