Описание
Для создания окон используйте API chrome.app.window. У окон может быть рамка со строкой заголовка и элементами управления размером. Они не связаны с окнами браузера Chrome. Примеры использования этих параметров можно найти в образце кода Window State.
Типы
AppWindow
Свойства
-
contentWindow
Окно
Объект window JavaScript для созданного дочернего элемента.
-
id
string
Идентификатор, с которым было создано окно.
-
innerBounds
Положение, размер и ограничения контента окна, не включающего элементы оформления. Это свойство появилось в Chrome 36.
-
outerBounds
Положение, размер и ограничения окна, включая его оформление, например строку заголовка и рамку. Это свойство появилось в Chrome 36.
-
clearAttention
void
Очистить внимание к окну.
Функция
clearAttentionвыглядит следующим образом:() => {...} -
закрыть
void
Закройте окно.
Функция
closeвыглядит следующим образом:() => {...} -
drawAttention
void
Привлеките внимание к окну.
Функция
drawAttentionвыглядит следующим образом:() => {...} -
фокус
void
Перейдите к окну.
Функция
focusвыглядит следующим образом:() => {...} -
полноэкранный режим
void
Развернуть окно на весь экран.
Пользователь сможет восстановить окно, нажав клавишу Esc. Приложение может запретить выход из полноэкранного режима при нажатии клавиши Esc, запросив разрешение
app.window.fullscreen.overrideEscи отменив событие с помощью вызова .preventDefault() в обработчиках keydown и keyup, как показано ниже.window.onkeydown = window.onkeyup = function(e) { if (e.keyCode == 27 /* ESC *\/) { e.preventDefault(); } };Примечание.
window.fullscreen()переводит в полноэкранный режим все окно и не требует жеста пользователя. Для перехода в полноэкранный режим также можно использовать HTML5 Fullscreen API (подробнее об этом читайте в статье Web APIs).Функция
fullscreenвыглядит следующим образом:() => {...} -
getBounds
void
Поддержка прекращенаИспользуйте innerBounds или outerBounds.
Получить внутренние границы окна в виде объекта
ContentBounds.Функция
getBoundsвыглядит следующим образом:() => {...}-
Возвращает
-
-
скрыть
void
Скрыть окно. Если окно уже скрыто, ничего не происходит.
Функция
hideвыглядит следующим образом:() => {...} -
isAlwaysOnTop
void
Окно всегда находится поверх других?
Функция
isAlwaysOnTopвыглядит следующим образом:() => {...}-
Возвращает
Логическое значение
-
-
isFullscreen
void
Окно открыто в полноэкранном режиме? Это значение будет истинным, если окно было создано в полноэкранном режиме или переведено в него с помощью API
AppWindowили HTML5.Функция
isFullscreenвыглядит следующим образом:() => {...}-
Возвращает
Логическое значение
-
-
isMaximized
void
Окно развернуто?
Функция
isMaximizedвыглядит следующим образом:() => {...}-
Возвращает
Логическое значение
-
-
isMinimized
void
Окно свернуто?
Функция
isMinimizedвыглядит следующим образом:() => {...}-
Возвращает
Логическое значение
-
-
развернуть
void
Разверните окно.
Функция
maximizeвыглядит следующим образом:() => {...} -
свернуть
void
Свернуть окно.
Функция
minimizeвыглядит следующим образом:() => {...} -
moveTo
void
Устарело начиная с Chrome 43Используйте outerBounds.
Переместить окно в позицию (
left,top).Функция
moveToвыглядит следующим образом:(left: number, top: number) => {...}
-
влево
число
-
верхняя
число
-
-
resizeTo
void
Устарело начиная с Chrome 43Используйте outerBounds.
Изменить размер окна на
widthxheightпикселей.Функция
resizeToвыглядит следующим образом:(width: number, height: number) => {...}
-
ширина
число
-
высота
число
-
-
восстановить
void
Восстановить окно, выйдя из развернутого, свернутого или полноэкранного режима.
Функция
restoreвыглядит следующим образом:() => {...} -
setAlwaysOnTop
void
Укажите, должно ли окно оставаться поверх большинства других окон. Требуется разрешение
alwaysOnTopWindows.Функция
setAlwaysOnTopвыглядит следующим образом:(alwaysOnTop: boolean) => {...}
-
alwaysOnTop
Логическое значение
-
-
setBounds
void
Поддержка прекращенаИспользуйте innerBounds или outerBounds.
Задайте внутренние границы окна.
Функция
setBoundsвыглядит следующим образом:(bounds: ContentBounds) => {...}
-
bounds
-
-
setVisibleOnAllWorkspaces
void
Укажите, должно ли окно быть видно во всех рабочих областях. (только для платформ, которые поддерживают эту функцию).
Функция
setVisibleOnAllWorkspacesвыглядит следующим образом:(alwaysVisible: boolean) => {...}
-
alwaysVisible
Логическое значение
-
-
Показывать
void
Показать окно. Если окно уже видно, ничего не происходит. Если для параметра
focusedзадано значение true или он не указан, фокус будет установлен на окно.Функция
showвыглядит следующим образом:(focused?: boolean) => {...}
-
сосредоточенность
Логическое значение (необязательно)
-
Bounds
Свойства
-
высота
число
Это свойство можно использовать для чтения или записи текущей высоты контента или окна.
-
влево
число
Это свойство можно использовать для чтения или записи текущей координаты X контента или окна.
-
maxHeight
number (необязательно)
Это свойство можно использовать для чтения или записи текущей максимальной высоты контента или окна. Значение
nullуказывает на то, что тип не задан. -
maxWidth
number (необязательно)
Это свойство можно использовать для чтения или записи текущей максимальной ширины контента или окна. Значение
nullуказывает на то, что тип не задан. -
minHeight
number (необязательно)
Это свойство можно использовать для чтения или записи текущей минимальной высоты контента или окна. Значение
nullуказывает на то, что тип не задан. -
minWidth
number (необязательно)
Это свойство можно использовать для чтения или записи текущей минимальной ширины контента или окна. Значение
nullуказывает на то, что тип не задан. -
верхняя
число
Это свойство можно использовать для чтения или записи текущей координаты Y контента или окна.
-
ширина
число
Это свойство можно использовать для чтения или записи текущей ширины контента или окна.
-
setMaximumSize
void
Задайте максимальный размер контента или окна. Чтобы снять ограничение, задайте для максимальной ширины или высоты значение
null. Значениеundefinedоставит ограничение без изменений.Функция
setMaximumSizeвыглядит следующим образом:(maxWidth: number, maxHeight: number) => {...}
-
maxWidth
число
-
maxHeight
число
-
-
setMinimumSize
void
Задайте минимальный размер контента или окна. Чтобы снять ограничение, задайте для минимальной ширины или высоты значение
null. Значениеundefinedоставит ограничение без изменений.Функция
setMinimumSizeвыглядит следующим образом:(minWidth: number, minHeight: number) => {...}
-
minWidth
число
-
minHeight
число
-
-
setPosition
void
Задайте положение контента или окна по горизонтали и вертикали.
Функция
setPositionвыглядит следующим образом:(left: number, top: number) => {...}
-
влево
число
-
верхняя
число
-
-
setSize
void
Настройка ширины и высоты контента или окна.
Функция
setSizeвыглядит следующим образом:(width: number, height: number) => {...}
-
ширина
число
-
высота
число
-
BoundsSpecification
Свойства
-
высота
number (необязательно)
Высота контента или окна.
-
влево
number (необязательно)
Координата X контента или окна.
-
maxHeight
number (необязательно)
Максимальная высота контента или окна.
-
maxWidth
number (необязательно)
Максимальная ширина контента или окна.
-
minHeight
number (необязательно)
Минимальная высота контента или окна.
-
minWidth
number (необязательно)
Минимальная ширина контента или окна.
-
верхняя
number (необязательно)
Координата Y контента или окна.
-
ширина
number (необязательно)
Ширина контента или окна.
ContentBounds
Свойства
-
высота
number (необязательно)
-
влево
number (необязательно)
-
верхняя
number (необязательно)
-
ширина
number (необязательно)
CreateWindowOptions
Свойства
-
alwaysOnTop
Логическое значение (необязательно)
Если задано значение true, окно будет находиться поверх большинства других окон. Если таких окон несколько, на переднем плане будет то, которое активно в данный момент. Требуется разрешение
alwaysOnTopWindows. Значение по умолчанию – false.Чтобы изменить это свойство после создания, вызовите
setAlwaysOnTop()в окне. -
bounds
ContentBounds необязательный
Поддержка прекращенаИспользуйте innerBounds или outerBounds.
Размер и положение контента в окне (без строки заголовка). Если также указан идентификатор и окно с соответствующим идентификатором уже показывалось, будут использоваться сохраненные границы окна.
-
сосредоточенность
Логическое значение (необязательно)
Если задано значение True, окно будет в фокусе при создании. По умолчанию используется значение true.
-
рамка
string | FrameOptions optional
Тип фрейма:
noneилиchrome(по умолчанию используетсяchrome). Дляnoneможно использовать свойство CSS-webkit-app-region, чтобы сделать окно приложения перетаскиваемым.-webkit-app-region: dragможно использовать, чтобы сделать регионы перетаскиваемыми. С помощьюno-dragможно отключить этот стиль для вложенных элементов.Использование
FrameOptions– это новая функция в M36. -
Логическое значение (необязательно)
Если задано значение true, окно будет создано в скрытом состоянии. Вызовите метод show() для окна, чтобы показать его после создания. Значение по умолчанию – false.
-
значок "?"
Строка (необязательно)
Chrome 54 и более поздних версий;URL значка окна. У окна может быть собственный значок, если для параметра showInShelf задано значение true. Это должен быть глобальный URL или локальный URL расширения.
-
id
Строка (необязательно)
Идентификатор окна. Оно будет использоваться для запоминания размера и положения окна и восстановления этой геометрии, когда позже будет открыто окно с тем же идентификатором. Если окно с определенным идентификатором создается, когда уже существует другое окно с таким же идентификатором, фокус будет перенесен на открытое окно, а не на новое.
-
innerBounds
BoundsSpecification необязательный
Используется для указания начального положения, начального размера и ограничений содержимого окна (за исключением элементов оформления окна). Если также указан параметр
idи окно с соответствующим значениемidуже показывалось, будут использоваться сохраненные границы.Обратите внимание, что отступ между внутренними и внешними границами определяется ОС. Поэтому, если вы зададите одинаковые границы для
innerBoundsиouterBounds, возникнет ошибка.Это свойство появилось в Chrome 36.
-
maxHeight
number (необязательно)
Поддержка прекращенаИспользуйте innerBounds или outerBounds.
Максимальная высота окна.
-
maxWidth
number (необязательно)
Поддержка прекращенаИспользуйте innerBounds или outerBounds.
Максимальная ширина окна.
-
minHeight
number (необязательно)
Поддержка прекращенаИспользуйте innerBounds или outerBounds.
Минимальная высота окна.
-
minWidth
number (необязательно)
Поддержка прекращенаИспользуйте innerBounds или outerBounds.
Минимальная ширина окна.
-
outerBounds
BoundsSpecification необязательный
Используется для указания начального положения, начального размера и ограничений окна (включая элементы оформления окна, такие как строка заголовка и рамка). Если также указан параметр
idи окно с соответствующим значениемidуже показывалось, будут использоваться сохраненные границы.Обратите внимание, что отступ между внутренними и внешними границами определяется ОС. Поэтому, если вы зададите одинаковые границы для
innerBoundsиouterBounds, возникнет ошибка.Это свойство появилось в Chrome 36.
-
с изменяемым размером
Логическое значение (необязательно)
Если задано значение true, пользователь сможет изменять размер окна. По умолчанию используется значение true.
-
showInShelf
Логическое значение (необязательно)
Chrome 54 и более поздних версий;Если задано значение True, у окна будет собственный значок на панели запуска. В противном случае окно будет сгруппировано на панели с другими окнами, связанными с приложением. По умолчанию используется значение false. Если для showInShelf задано значение true, необходимо указать идентификатор окна.
-
одиночка
Логическое значение (необязательно)
Поддержка прекращенаНесколько окон с одним идентификатором больше не поддерживаются.
По умолчанию, если вы указываете идентификатор окна, оно будет создано, только если не существует другого окна с таким же идентификатором. Если окно с таким идентификатором уже существует, оно будет активировано. Если вы хотите создать несколько окон с одним и тем же идентификатором, задайте для этого свойства значение false.
-
штат
State optional
Начальное состояние окна, позволяющее создать его уже в полноэкранном режиме, развернутым или свернутым. Значение по умолчанию – normal.
-
тип
WindowType необязательный
Chrome 45 и более поздние версии Поддержка прекращена в Chrome 69Все окна приложений используют тип окна shell
Тип создаваемого окна.
-
visibleOnAllWorkspaces
Логическое значение (необязательно)
Если задано значение true и платформа поддерживает эту функцию, окно будет видно во всех рабочих областях.
FrameOptions
Свойства
-
activeColor
Строка (необязательно)
Позволяет задать цвет рамки активного окна. Окрашивание рамки доступно, только если ее тип –
chrome.Окрашивание рамки доступно, только если тип рамки –
chrome.В Chrome 36 появилась возможность менять цвет рамки.
-
цвет
Строка (необязательно)
Позволяет задать цвет рамки. Окрашивание рамки доступно, только если тип рамки –
chrome.В Chrome 36 появилась возможность менять цвет рамки.
-
inactiveColor
Строка (необязательно)
Позволяет задать для рамки неактивного окна цвет, отличный от цвета рамки активного окна. Окрашивание рамки доступно, только если ее тип –
chrome.inactiveColorнеобходимо использовать вместе сcolor.В Chrome 36 появилась возможность менять цвет рамки.
-
тип
Строка (необязательно)
Тип фрейма:
noneилиchrome(по умолчанию используетсяchrome).В
noneсвойство CSS-webkit-app-regionможно использовать, чтобы сделать окно приложения перетаскиваемым.-webkit-app-region: dragможно использовать, чтобы сделать регионы перетаскиваемыми. С помощьюno-dragможно отключить этот стиль для вложенных элементов.
State
Состояние окна: обычное, полноэкранное, развернутое, свернутое.
Перечисление
"normal"
"fullscreen"
"maximized"
"minimized"
WindowType
Указывает тип создаваемого окна.
Перечисление
"shell"
Тип окна по умолчанию.
"panel"
Окно, управляемое ОС (поддержка прекращена).
Методы
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
string
-
Параметры
CreateWindowOptions необязательный
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(createdWindow: AppWindow) => void
-
createdWindow
-
Возвраты
-
Promise<AppWindow>
Chrome 117 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
current()
chrome.app.window.current(): AppWindow | undefined
Возвращает объект AppWindow для текущего контекста скрипта (например, объект window в JavaScript). Этот метод также можно вызвать для дескриптора контекста скрипта другой страницы, например otherWindow.chrome.app.window.current().
Возвраты
-
AppWindow | undefined
get()
chrome.app.window.get(
id: string,
): AppWindow | undefined
Возвращает объект AppWindow с заданным идентификатором. Если окна с указанным идентификатором не существует, возвращается значение null. Этот метод появился в Chrome 33.
Параметры
-
id
string
Возвраты
-
AppWindow | undefined
getAll()
chrome.app.window.getAll(): AppWindow[]
Возвращает массив всех созданных окон приложения. Этот метод появился в Chrome 33.
Возвраты
События
onBoundsChanged
chrome.app.window.onBoundsChanged.addListener(
callback: function,
)
Срабатывает при изменении размера окна.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:() => void
onClosed
chrome.app.window.onClosed.addListener(
callback: function,
)
Срабатывает при закрытии окна. Обратите внимание, что это событие должно прослушиваться из окна, отличного от закрываемого, например из фоновой страницы. Это связано с тем, что закрываемое окно будет находиться в процессе удаления при запуске события, а это означает, что не все API в контексте скрипта окна будут работать.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:() => void
onFullscreened
chrome.app.window.onFullscreened.addListener(
callback: function,
)
Срабатывает, когда окно переходит в полноэкранный режим (с помощью AppWindow или API HTML5).
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:() => void
onMaximized
chrome.app.window.onMaximized.addListener(
callback: function,
)
Срабатывает, когда окно разворачивается.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:() => void
onMinimized
chrome.app.window.onMinimized.addListener(
callback: function,
)
Срабатывает, когда окно свернуто.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:() => void
onRestored
chrome.app.window.onRestored.addListener(
callback: function,
)
Срабатывает, когда окно восстанавливается из свернутого или развернутого состояния.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:() => void