Описание
Используйте 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Используйте внешние границы.
Измените размер окна до размера в пикселях:
widthxheight.Функция
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
Указывает тип создаваемого окна.
Перечисление
"оболочка" "панель"
Тип окна по умолчанию.
Окно, управляемое ОС (устарело).
Методы
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
- createdWindow
Возврат
Обещание< AppWindow >
Хром 117+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
current()
chrome.app.window.current(): AppWindow | undefined
Возвращает объект AppWindow для текущего контекста скрипта (т. е. объекта JavaScript «window»). Его также можно вызвать для дескриптора контекста скрипта другой страницы, например: otherWindow.chrome.app.window.current().
Возврат
AppWindow | не определено
get()
chrome.app.window.get(
id: string,
): AppWindow | undefined
Получает AppWindow с заданным идентификатором. Если окна с заданным идентификатором не существует, возвращается значение null. Этот метод появился в Chrome 33.
Параметры
- идентификатор
нить
Возврат
AppWindow | не определено
getAll()
chrome.app.window.getAll(): AppWindow[]
Получает массив всех окон приложений, созданных в данный момент. Этот метод появился в Chrome 33.
Возврат
AppWindow []
События
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