Описание
Используйте 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
xheight
.Функция
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