chrome.app.window

Описание

Используйте API chrome.app.window для создания окон. Окна имеют опциональную рамку с заголовком и элементами управления размером. Они не связаны ни с одним окном браузера Chrome. Демонстрацию этих возможностей см. в примере состояния окна .

Типы

AppWindow

Характеристики

  • contentWindow

    Окно

    Объект JavaScript «window» для созданного дочернего элемента.

  • идентификатор

    нить

    Идентификатор, с которым было создано окно.

  • внутренние границы

    Положение, размер и ограничения содержимого окна, не включая его оформление. Это свойство впервые появилось в Chrome 36.

  • внешние границы

    Положение, размер и ограничения окна, включая его оформление, такое как заголовок и рамка. Это свойство впервые появилось в Chrome 36.

  • ясноВнимание

    пустота

    Особое внимание к окну.

    Функция clearAttention выглядит так:

    () => {...}

  • закрывать

    пустота

    Закройте окно.

    Функция close выглядит так:

    () => {...}

  • привлечьВнимание

    пустота

    Обратите внимание на окно.

    Функция drawAttention выглядит так:

    () => {...}

  • фокус

    пустота

    Сфокусируйте окно.

    Функция focus выглядит так:

    () => {...}

  • полноэкранный

    пустота

    Разворачивает окно на весь экран.

    Пользователь сможет восстановить окно, нажав ESC. Приложение может предотвратить выход из полноэкранного режима при нажатии ESC, запросив разрешение app.window.fullscreen.overrideEsc и отменив событие, вызвав .preventDefault() в обработчиках keydown и keyup, например:

    window.onkeydown = window.onkeyup = function(e) { if (e.keyCode == 27 /* ESC *\/) { e.preventDefault(); } };

    Обратите внимание, что window.fullscreen() разворачивает всё окно на весь экран, не требуя от пользователя никаких действий. Для перехода в полноэкранный режим также можно использовать API полноэкранного режима HTML5 (подробнее см. в разделе «Веб-API» ).

    Функция fullscreen выглядит так:

    () => {...}

  • getBounds

    пустота

    Устаревший

    Используйте innerBounds или outerBounds.

    Получите внутренние границы окна как объект ContentBounds .

    Функция getBounds выглядит так:

    () => {...}

  • скрывать

    пустота

    Скрыть окно. Ничего не делает, если окно уже скрыто.

    Функция hide выглядит так:

    () => {...}

  • isAlwaysOnTop

    пустота

    Окно всегда сверху?

    Функция isAlwaysOnTop выглядит так:

    () => {...}

    • возвращается

      булев

  • полноэкранный режим

    пустота

    Окно отображается в полноэкранном режиме? Это будет верно, если окно создано в полноэкранном режиме или переведено в полноэкранный режим с помощью API AppWindow или полноэкранного режима HTML5.

    Функция isFullscreen выглядит так:

    () => {...}

    • возвращается

      булев

  • isMaximized

    пустота

    Развернуто ли окно на весь экран?

    Функция isMaximized выглядит так:

    () => {...}

    • возвращается

      булев

  • свернуто

    пустота

    Окно свернуто?

    Функция isMinimized выглядит так:

    () => {...}

    • возвращается

      булев

  • максимизировать

    пустота

    Развернуть окно.

    Функция maximize выглядит так:

    () => {...}

  • минимизировать

    пустота

    Свернуть окно.

    Функция minimize выглядит так:

    () => {...}

  • переместить в

    пустота

    Не рекомендуется с версии Chrome 43

    Используйте внешние границы.

    Переместить окно в положение ( left , top ).

    Функция moveTo выглядит так:

    (left: number, top: number) => {...}

    • левый

      число

    • вершина

      число

  • изменить размер

    пустота

    Не рекомендуется с версии Chrome 43

    Используйте внешние границы.

    Измените размер окна до размера в пикселях: width x height .

    Функция resizeTo выглядит так:

    (width: number, height: number) => {...}

    • ширина

      число

    • высота

      число

  • восстановить

    пустота

    Восстановить окно, выйдя из развернутого, свернутого или полноэкранного состояния.

    Функция restore выглядит так:

    () => {...}

  • setAlwaysOnTop

    пустота

    Укажите, должно ли окно отображаться поверх большинства других окон. Требуется разрешение alwaysOnTopWindows .

    Функция setAlwaysOnTop выглядит так:

    (alwaysOnTop: boolean) => {...}

    • всегда наверху

      булев

  • setBounds

    пустота

    Устаревший

    Используйте innerBounds или outerBounds.

    Установите внутренние границы окна.

    Функция setBounds выглядит так:

    (bounds: ContentBounds) => {...}

  • setVisibleOnAllWorkspaces

    пустота

    Установите, будет ли окно видимо на всех рабочих пространствах. (Только для платформ, которые это поддерживают).

    Функция setVisibleOnAllWorkspaces выглядит так:

    (alwaysVisible: boolean) => {...}

    • всегдаВидимый

      булев

  • показывать

    пустота

    Показать окно. Ничего не делает, если окно уже видимо. Фокусируется на окне, если focused установлен в значение true или опущен.

    Функция show выглядит так:

    (focused?: boolean) => {...}

    • сосредоточенный

      логическое необязательное

Bounds

Характеристики

  • высота

    число

    Это свойство можно использовать для чтения или записи текущей высоты содержимого или окна.

  • левый

    число

    Это свойство можно использовать для чтения или записи текущей координаты X содержимого или окна.

  • maxHeight

    номер необязательно

    Это свойство можно использовать для чтения или записи текущей максимальной высоты содержимого или окна. Значение null означает «не указано».

  • максШирина

    номер необязательно

    Это свойство можно использовать для чтения или записи текущей максимальной ширины содержимого или окна. Значение null означает «не указано».

  • minHeight

    номер необязательно

    Это свойство можно использовать для чтения или записи текущей минимальной высоты содержимого или окна. Значение null означает «не указано».

  • минШирина

    номер необязательно

    Это свойство можно использовать для чтения или записи текущей минимальной ширины содержимого или окна. Значение null означает «не указано».

  • вершина

    число

    Это свойство можно использовать для чтения или записи текущей координаты Y содержимого или окна.

  • ширина

    число

    Это свойство можно использовать для чтения или записи текущей ширины содержимого или окна.

  • setMaximumSize

    пустота

    Установите ограничение максимального размера содержимого или окна. Чтобы снять ограничение, можно задать максимальную ширину или высоту равными null . Значение undefined не изменит ограничение.

    Функция setMaximumSize выглядит так:

    (maxWidth: number, maxHeight: number) => {...}

    • максШирина

      число

    • maxHeight

      число

  • setMinimumSize

    пустота

    Установите минимальные ограничения размера содержимого или окна. Чтобы снять ограничение, можно задать минимальную ширину или высоту равными null . Значение undefined не изменит ограничение.

    Функция setMinimumSize выглядит так:

    (minWidth: number, minHeight: number) => {...}

    • минШирина

      число

    • minHeight

      число

  • setPosition

    пустота

    Установите левую и верхнюю позицию содержимого или окна.

    Функция setPosition выглядит так:

    (left: number, top: number) => {...}

    • левый

      число

    • вершина

      число

  • setSize

    пустота

    Установите ширину и высоту содержимого или окна.

    Функция setSize выглядит так:

    (width: number, height: number) => {...}

    • ширина

      число

    • высота

      число

BoundsSpecification

Характеристики

  • высота

    номер необязательно

    Высота содержимого или окна.

  • левый

    номер необязательно

    Координата X содержимого или окна.

  • maxHeight

    номер необязательно

    Максимальная высота содержимого или окна.

  • максШирина

    номер необязательно

    Максимальная ширина содержимого или окна.

  • minHeight

    номер необязательно

    Минимальная высота содержимого или окна.

  • минШирина

    номер необязательно

    Минимальная ширина содержимого или окна.

  • вершина

    номер необязательно

    Координата Y содержимого или окна.

  • ширина

    номер необязательно

    Ширина содержимого или окна.

ContentBounds

Характеристики

  • высота

    номер необязательно

  • левый

    номер необязательно

  • вершина

    номер необязательно

  • ширина

    номер необязательно

CreateWindowOptions

Характеристики

  • всегда наверху

    логическое необязательное

    Если задано значение true, окно будет располагаться поверх большинства других окон. Если таких окон несколько, текущее окно, находящееся в фокусе, будет на переднем плане. Требуется разрешение alwaysOnTopWindows . Значение по умолчанию — false.

    Вызовите setAlwaysOnTop() для окна, чтобы изменить это свойство после создания.

  • границы

    ContentBounds необязательный

    Устаревший

    Используйте innerBounds или outerBounds.

    Размер и положение содержимого окна (исключая заголовок). Если также указан идентификатор и окно с таким идентификатором уже отображалось ранее, будут использоваться запомненные границы окна.

  • сосредоточенный

    логическое необязательное

    Если true, окно будет выделено при создании. Значение по умолчанию — true.

  • рамка

    строка | FrameOptions необязательно

    Тип фрейма: none или chrome (по умолчанию chrome ). Для none можно использовать CSS-свойство -webkit-app-region для добавления возможности перетаскивания к окну приложения. -webkit-app-region: drag можно использовать для обозначения областей, доступных для перетаскивания. no-drag можно использовать для отключения этого стиля для вложенных элементов.

    Использование FrameOptions является новинкой в M36.

  • скрытый

    логическое необязательное

    Если значение true, окно будет создано в скрытом состоянии. Вызовите метод show() для окна, чтобы отобразить его после создания. Значение по умолчанию — false.

  • икона

    строка необязательная

    Хром 54+

    URL значка окна. Окно может иметь собственный значок, если параметр showInShelf установлен в значение true. URL должен быть глобальным или локальным URL расширения.

  • идентификатор

    строка необязательная

    Идентификатор окна. Он будет использоваться для запоминания размера и положения окна и восстановления этой геометрии при последующем открытии окна с тем же идентификатором. Если окно с заданным идентификатором создаётся при наличии другого окна с таким же идентификатором, фокус будет переведён на текущее открытое окно, а не на новое.

  • внутренние границы

    BoundsSpecification необязательно

    Используется для указания начального положения, начального размера и ограничений содержимого окна (за исключением декоративных элементов). Если также указан id и окно с таким id уже отображалось ранее, будут использоваться запомненные границы.

    Обратите внимание, что расстояние между внутренней и внешней границами определяется операционной системой. Поэтому установка одного и того же свойства bounds для innerBounds и outerBounds приведёт к ошибке.

    Это свойство является новым в Chrome 36.

  • maxHeight

    номер необязательно

    Устаревший

    Используйте innerBounds или outerBounds.

    Максимальная высота окна.

  • максШирина

    номер необязательно

    Устаревший

    Используйте innerBounds или outerBounds.

    Максимальная ширина окна.

  • minHeight

    номер необязательно

    Устаревший

    Используйте innerBounds или outerBounds.

    Минимальная высота окна.

  • минШирина

    номер необязательно

    Устаревший

    Используйте innerBounds или outerBounds.

    Минимальная ширина окна.

  • внешние границы

    BoundsSpecification необязательно

    Используется для указания начального положения, начального размера и ограничений окна (включая оформление окна, такое как заголовок и рамка). Если также указан id и окно с таким id уже отображалось ранее, будут использоваться запомненные границы.

    Обратите внимание, что расстояние между внутренней и внешней границами определяется операционной системой. Поэтому установка одного и того же свойства bounds для innerBounds и outerBounds приведёт к ошибке.

    Это свойство является новым в Chrome 36.

  • изменяемый размер

    логическое необязательное

    Если true, размер окна может изменяться пользователем. Значение по умолчанию — true.

  • showInShelf

    логическое необязательное

    Хром 54+

    Если установлено значение true, у окна будет собственный значок на полке. В противном случае окно будет сгруппировано на полке с другими окнами, связанными с приложением. Значение по умолчанию — false. Если для showInShelf установлено значение true, необходимо указать идентификатор окна.

  • синглтон

    логическое необязательное

    Устаревший

    Несколько окон с одинаковым идентификатором больше не поддерживаются.

    По умолчанию, если указать идентификатор окна, оно будет создано только в том случае, если другое окно с таким же идентификатором ещё не существует. Если окно с таким же идентификатором уже существует, оно активируется. Если вы хотите создать несколько окон с одинаковым идентификатором, установите для этого свойства значение false.

  • состояние

    Состояние необязательное

    Начальное состояние окна, позволяющее создать его в полноэкранном режиме, развёрнутым на весь экран или свёрнутым. По умолчанию — «нормальное».

  • тип

    WindowType необязательно

    Chrome 45+ Устарело с Chrome 69

    Все окна приложений используют тип окна «оболочка».

    Тип создаваемого окна.

  • видимыйНаВсехРабочихПространствах

    логическое необязательное

    Если это правда и поддерживается платформой, окно будет видно на всех рабочих пространствах.

FrameOptions

Характеристики

  • activeColor

    строка необязательная

    Позволяет задать цвет рамки окна, когда оно активно. Изменение цвета рамки доступно только для рамок типа chrome .

    Окрашивание рамы возможно только в том случае, если тип рамы — chrome .

    Окрашивание рамок — нововведение в Chrome 36.

  • цвет

    строка необязательная

    Позволяет выбрать цвет рамки. Выбор цвета рамки доступен только для chrome рамки.

    Окрашивание рамок — нововведение в Chrome 36.

  • неактивныйЦвет

    строка необязательная

    Позволяет задать цвет рамки неактивного окна, отличный от цвета активного окна. Изменение цвета рамки доступно только для рамок типа chrome .

    inactiveColor необходимо использовать вместе с color .

    Окрашивание рамок — нововведение в Chrome 36.

  • тип

    строка необязательная

    Тип рамки: none или chrome (по умолчанию chrome ).

    Для none свойство CSS -webkit-app-region можно использовать для применения перетаскивания к окну приложения.

    -webkit-app-region: drag можно использовать для обозначения перетаскиваемых областей. no-drag можно использовать для отключения этого стиля для вложенных элементов.

State

Состояние окна: обычное, полноэкранное, развернутое, свернутое.

Перечисление

"нормальный"

"полноэкранный"

"максимизированный"

"минимизирован"

WindowType

Хром 45+

Указывает тип создаваемого окна.

Перечисление

"оболочка"
Тип окна по умолчанию.

"панель"
Окно, управляемое ОС (устарело).

Методы

canSetVisibleOnAllWorkspaces()

chrome.app.window.canSetVisibleOnAllWorkspaces(): boolean

Поддерживает ли текущая платформа отображение окон на всех рабочих пространствах.

Возврат

  • булев

create()

Обещать
chrome.app.window.create(
  url: string,
  options?: CreateWindowOptions,
  callback?: function,
)
: Promise<AppWindow>

Размер и положение окна можно задать несколькими способами. Самый простой вариант — вообще ничего не указывать. В этом случае будут использоваться размер и положение по умолчанию, зависящие от платформы.

Чтобы задать положение, размер и ограничения окна, используйте свойства innerBounds или outerBounds . Внутренние границы не включают оформление окна. Внешние границы включают заголовок и рамку окна. Обратите внимание, что отступ между внутренней и внешней границами определяется операционной системой. Поэтому установка одного и того же свойства для внутренней и внешней границ считается ошибкой (например, установка одновременно innerBounds.left и outerBounds.left ).

Чтобы автоматически запоминать положение окон, можно присвоить им идентификаторы. Если у окна есть идентификатор, этот идентификатор используется для запоминания размера и положения окна при его перемещении или изменении размера. Эти размер и положение затем используются вместо указанных границ при последующем открытии окна с тем же идентификатором. Если вам нужно открыть окно с идентификатором в месте, отличном от запомненного по умолчанию, вы можете сделать его скрытым, переместить в нужное место, а затем отобразить.

Параметры

  • URL-адрес

    нить

  • параметры

    CreateWindowOptions необязательно

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (createdWindow: AppWindow) => void

Возврат

  • Обещание< AppWindow >

    Хром 117+

    Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.

current()

chrome.app.window.current(): AppWindow | undefined

Возвращает объект AppWindow для текущего контекста скрипта (т. е. объекта JavaScript «window»). Его также можно вызвать для дескриптора контекста скрипта другой страницы, например: otherWindow.chrome.app.window.current().

Возврат

get()

chrome.app.window.get(
  id: string,
)
: AppWindow | undefined

Получает AppWindow с заданным идентификатором. Если окна с заданным идентификатором не существует, возвращается значение null. Этот метод появился в Chrome 33.

Параметры

  • идентификатор

    нить

Возврат

getAll()

chrome.app.window.getAll(): AppWindow[]

Получает массив всех окон приложений, созданных в данный момент. Этот метод появился в Chrome 33.

Возврат

События

onBoundsChanged

chrome.app.window.onBoundsChanged.addListener(
  callback: function,
)

Срабатывает при изменении размера окна.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    () => void

onClosed

chrome.app.window.onClosed.addListener(
  callback: function,
)

Срабатывает при закрытии окна. Обратите внимание: прослушивать событие следует из окна, отличного от закрываемого, например, с фоновой страницы. Это связано с тем, что закрываемое окно будет находиться в процессе закрытия на момент срабатывания события, а значит, не все API в контексте скрипта окна будут работоспособны.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    () => void

onFullscreened

chrome.app.window.onFullscreened.addListener(
  callback: function,
)

Срабатывает, когда окно разворачивается на весь экран (через API AppWindow или HTML5).

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    () => void

onMaximized

chrome.app.window.onMaximized.addListener(
  callback: function,
)

Срабатывает при развертывании окна на весь экран.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    () => void

onMinimized

chrome.app.window.onMinimized.addListener(
  callback: function,
)

Срабатывает при сворачивании окна.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    () => void

onRestored

chrome.app.window.onRestored.addListener(
  callback: function,
)

Срабатывает при восстановлении окна из свернутого или развернутого состояния.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    () => void