Описание
Используйте API chrome.app.window
для создания окон. В Windows есть дополнительная рамка со строкой заголовка и элементами управления размером. Они не связаны ни с одним окном браузера Chrome. См. образец состояния окна для демонстрации этих параметров.
Типы
AppWindow
Характеристики
- содержаниеОкно
Окно
Объект JavaScript «окно» для созданного дочернего элемента.
- идентификатор
нить
Идентификатор, с которым было создано окно.
- внутренние границы
Положение, размер и ограничения содержимого окна, не включая украшения окна. Это свойство является новым в Chrome 36.
- внешние границы
Положение, размер и ограничения окна, включая украшения окна, такие как строка заголовка и рамка. Это свойство является новым в Chrome 36.
- ясноВнимание
пустота
Четкое внимание к окну.
Функция
clearAttention
выглядит так:() => {...}
- закрывать
пустота
Закройте окно.
Функция
close
выглядит так:() => {...}
- привлечь внимание
пустота
Привлеките внимание к окну.
Функция
drawAttention
выглядит так:() => {...}
- фокус
пустота
Сфокусируйте окно.
Функция
focus
выглядит так:() => {...}
- полноэкранный
пустота
Полноэкранное окно.
Пользователь сможет восстановить окно, нажав ESC. Приложение может предотвратить выход из полноэкранного состояния при нажатии ESC, запросив разрешение
app.window.fullscreen.overrideEsc
и отменив событие, вызвав .preventDefault() в обработчиках нажатия клавиш и нажатия клавиш, например:window.onkeydown = window.onkeyup = function(e) { if (e.keyCode == 27 /* ESC *\/) { e.preventDefault(); } };
Обратите внимание, что
window.fullscreen()
приведет к тому, что все окно станет полноэкранным и не требует жестов пользователя. Полноэкранный API HTML5 также можно использовать для перехода в полноэкранный режим (более подробную информацию см. в разделе Веб-API ).fullscreen
функция выглядит так:() => {...}
- getBounds
пустота
УстарелоИспользуйте InternalBounds или OuterBounds.
Получите внутренние границы окна как объект
ContentBounds
.Функция
getBounds
выглядит так:() => {...}
- возвращает
- скрывать
пустота
Скройте окно. Ничего не делает, если окно уже скрыто.
Функция
hide
выглядит так:() => {...}
- isAlwaysOnTop
пустота
Окно всегда сверху?
Функция
isAlwaysOnTop
выглядит так:() => {...}
- возвращает
логическое значение
- isFullscreen
пустота
Окно полноэкранное? Это будет верно, если окно было создано в полноэкранном режиме или стало полноэкранным с помощью полноэкранных API
AppWindow
или HTML5.Функция
isFullscreen
выглядит так:() => {...}
- возвращает
логическое значение
- isMaximized
пустота
Окно развернуто?
Функция
isMaximized
выглядит так:() => {...}
- возвращает
логическое значение
- isMinimized
пустота
Окно свернуто?
Функция
isMinimized
выглядит так:() => {...}
- возвращает
логическое значение
- максимизировать
пустота
Разверните окно до максимума.
Функция
maximize
выглядит так:() => {...}
- минимизировать
пустота
Сверните окно.
Функция
minimize
выглядит так:() => {...}
- переместитьTo
пустота
Устарело с 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
пустота
УстарелоИспользуйте InternalBounds или OuterBounds.
Установите внутренние границы окна.
Функция
setBounds
выглядит так:(bounds: ContentBounds) => {...}
- границы
- setVisibleOnAllWorkspaces
пустота
Установите, будет ли окно видимым во всех рабочих областях. (Только для платформ, которые это поддерживают).
Функция
setVisibleOnAllWorkspaces
выглядит так:(alwaysVisible: boolean) => {...}
- всегдавидимый
логическое значение
- показывать
пустота
Покажи окно. Ничего не делает, если окно уже видно. Сфокусируйте окно, если
focused
установлено значение true или опущено.Функция
show
выглядит так:(focused?: boolean) => {...}
- сосредоточенный
логическое значение необязательно
Bounds
Характеристики
- высота
число
Это свойство можно использовать для чтения или записи текущей высоты содержимого или окна.
- левый
число
Это свойство можно использовать для чтения или записи текущей координаты X содержимого или окна.
- МаксХайт
номер необязательно
Это свойство можно использовать для чтения или записи текущей максимальной высоты содержимого или окна. Значение
null
указывает на «неопределенный». - максимальная ширина
номер необязательно
Это свойство можно использовать для чтения или записи текущей максимальной ширины содержимого или окна. Значение
null
указывает на «неопределенный». - минВысота
номер необязательно
Это свойство можно использовать для чтения или записи текущей минимальной высоты содержимого или окна. Значение
null
указывает на «неопределенный». - минширина
номер необязательно
Это свойство можно использовать для чтения или записи текущей минимальной ширины содержимого или окна. Значение
null
указывает на «неопределенный». - вершина
число
Это свойство можно использовать для чтения или записи текущей координаты Y содержимого или окна.
- ширина
число
Это свойство можно использовать для чтения или записи текущей ширины содержимого или окна.
- setMaximumSize
пустота
Установите ограничения максимального размера содержимого или окна. Для снятия ограничения максимальную ширину или высоту можно установить
null
. Значениеundefined
оставит ограничение неизменным.Функция
setMaximumSize
выглядит так:(maxWidth: number, maxHeight: number) => {...}
- максимальная ширина
число
- МаксХайт
число
- setMinimumSize
пустота
Установите ограничения минимального размера содержимого или окна. Минимальную ширину или высоту можно установить равным
null
, чтобы удалить ограничение. Значениеundefined
оставит ограничение неизменным.Функция
setMinimumSize
выглядит так:(minWidth: number, minHeight: number) => {...}
- минширина
число
- минВысота
число
- setPosition
пустота
Установите левое и верхнее положение содержимого или окна.
Функция
setPosition
выглядит так:(left: number, top: number) => {...}
- левый
число
- вершина
число
- setSize
пустота
Установите ширину и высоту содержимого или окна.
Функция
setSize
выглядит так:(width: number, height: number) => {...}
- ширина
число
- высота
число
BoundsSpecification
Характеристики
- высота
номер необязательно
Высота содержимого или окна.
- левый
номер необязательно
Координата X содержимого или окна.
- МаксХайт
номер необязательно
Максимальная высота содержимого или окна.
- максимальная ширина
номер необязательно
Максимальная ширина содержимого или окна.
- минВысота
номер необязательно
Минимальная высота содержимого или окна.
- минширина
номер необязательно
Минимальная ширина содержимого или окна.
- вершина
номер необязательно
Координата Y содержимого или окна.
- ширина
номер необязательно
Ширина содержимого или окна.
ContentBounds
Характеристики
- высота
номер необязательно
- левый
номер необязательно
- вершина
номер необязательно
- ширина
номер необязательно
CreateWindowOptions
Характеристики
- всегдаонтоп
логическое значение необязательно
Если это правда, окно останется над большинством других окон. Если таких окон несколько, то окно, находящееся в фокусе, будет на переднем плане. Требуется разрешение
alwaysOnTopWindows
. По умолчанию ложь.Вызовите
setAlwaysOnTop()
в окне, чтобы изменить это свойство после создания. - границы
ContentBounds необязательно
УстарелоИспользуйте InternalBounds или OuterBounds.
Размер и положение содержимого в окне (исключая заголовок). Если также указан идентификатор и ранее показывалось окно с соответствующим идентификатором, вместо него будут использоваться запомненные границы окна.
- сосредоточенный
логическое значение необязательно
Если это правда, окно будет сфокусировано при создании. По умолчанию истинно.
- рамка
строка | Параметры фрейма необязательно
Тип рамки:
none
илиchrome
(по умолчаниюchrome
). Дляnone
свойство CSS-webkit-app-region
можно использовать для применения возможности перетаскивания к окну приложения.-webkit-app-region: drag
чтобы отметить области, которые можно перетаскивать.no-drag
можно использовать для отключения этого стиля для вложенных элементов.Использование
FrameOptions
является новым в M36. логическое значение необязательно
Если это правда, окно будет создано в скрытом состоянии. Вызовите show() в окне, чтобы отобразить его после создания. По умолчанию ложь.
- икона
строка необязательна
Хром 54+URL значка окна. Окно может иметь собственный значок, если для параметра showInShelf установлено значение true. URL-адрес должен быть глобальным или локальным URL-адресом расширения.
- идентификатор
строка необязательна
Идентификатор для идентификации окна. Это будет использоваться для запоминания размера и положения окна и восстановления этой геометрии, когда позже откроется окно с тем же идентификатором. Если окно с данным идентификатором создается, в то время как другое окно с тем же идентификатором уже существует, фокус будет сделан на открытом в данный момент окне, а не на создании нового окна.
- внутренние границы
Спецификация границ необязательна
Используется для указания исходного положения, начального размера и ограничений содержимого окна (за исключением оформления окна). Если также указан
id
и ранее было показано окно с соответствующимid
, вместо него будут использоваться запомненные границы.Обратите внимание, что заполнение между внутренней и внешней границами определяется операционной системой. Поэтому установка одного и того же свойства границ как для
innerBounds
, так иouterBounds
приведет к ошибке.Это свойство является новым в Chrome 36.
- МаксХайт
номер необязательно
УстарелоИспользуйте InternalBounds или OuterBounds.
Максимальная высота окна.
- максимальная ширина
номер необязательно
УстарелоИспользуйте InternalBounds или OuterBounds.
Максимальная ширина окна.
- минВысота
номер необязательно
УстарелоИспользуйте InternalBounds или OuterBounds.
Минимальная высота окна.
- минширина
номер необязательно
УстарелоИспользуйте InternalBounds или OuterBounds.
Минимальная ширина окна.
- внешние границы
Спецификация границ необязательна
Используется для указания исходного положения, начального размера и ограничений окна (включая украшения окна, такие как строка заголовка и рамка). Если также указан
id
и ранее было показано окно с соответствующимid
, вместо него будут использоваться запомненные границы.Обратите внимание, что заполнение между внутренней и внешней границами определяется операционной системой. Поэтому установка одного и того же свойства границ как для
innerBounds
, так иouterBounds
приведет к ошибке.Это свойство является новым в Chrome 36.
- изменяемый размер
логическое значение необязательно
Если это правда, размер окна будет изменяться пользователем. По умолчанию истинно.
- показать на полке
логическое значение необязательно
Хром 54+Если это правда, окно будет иметь собственный значок полки. В противном случае окно будет сгруппировано на полке вместе с другими окнами, связанными с приложением. По умолчанию ложь. Если для параметра showInShelf установлено значение true, вам необходимо указать идентификатор окна.
- синглтон
логическое значение необязательно
УстарелоНесколько окон с одним и тем же идентификатором больше не поддерживаются.
По умолчанию, если вы укажете идентификатор для окна, окно будет создано только в том случае, если другое окно с таким же идентификатором еще не существует. Если окно с таким идентификатором уже существует, вместо этого активируется это окно. Если вы хотите создать несколько окон с одним и тем же идентификатором, вы можете установить для этого свойства значение false.
- состояние
Государство необязательно
Начальное состояние окна, позволяющее создать его уже в полноэкранном режиме, развернуть или свернуть. По умолчанию «нормальный».
- тип
Тип окна необязательно
Chrome 45+ устарел с версии Chrome 69Все окна приложений используют тип окна «оболочка».
Тип создаваемого окна.
- видимыйOnAllWorkspaces
логическое значение необязательно
Если это правда и поддерживается платформой, окно будет видно во всех рабочих областях.
FrameOptions
Характеристики
- активный цвет
строка необязательна
Позволяет установить цвет рамки активного окна. Окраска рамки доступна только в том случае, если тип рамки —
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()
Поддерживает ли текущая платформа видимость окон во всех рабочих областях.
Возврат
логическое значение
create()
chrome.app.window.create(
url: string,
options?: CreateWindowOptions,
callback?: function,
)
Размер и положение окна можно указать разными способами. Самый простой вариант — вообще ничего не указывать, и в этом случае будет использоваться размер по умолчанию и положение, зависящее от платформы.
Чтобы установить положение, размер и ограничения окна, используйте свойства innerBounds
или outerBounds
. Внутренние границы не включают оконные украшения. Внешние границы включают строку заголовка и рамку окна. Обратите внимание, что заполнение между внутренней и внешней границей определяется ОС. Поэтому установка одного и того же свойства как для внутренней, так и для внешней границ считается ошибкой (например, установка как innerBounds.left
, так и outerBounds.left
).
Чтобы автоматически запоминать положения окон, вы можете присвоить им идентификаторы. Если у окна есть идентификатор, этот идентификатор используется для запоминания размера и положения окна при каждом его перемещении или изменении размера. Этот размер и позиция затем используются вместо указанных границ при последующем открытии окна с тем же идентификатором. Если вам нужно открыть окно с идентификатором в месте, отличном от запомненного по умолчанию, вы можете сделать его скрытым, переместить в нужное место, а затем показать.
Параметры
- URL
нить
- параметры
CreateWindowOptions необязательно
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(createdWindow: AppWindow) => void
- созданное окно
Возврат
Обещание <AppWindow>
Хром 117+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
current()
chrome.app.window.current()
Возвращает объект AppWindow
для текущего контекста сценария (т. е. объект «окно» JavaScript). Это также можно вызвать для дескриптора контекста сценария для другой страницы, например:otherWindow.chrome.app.window.current().
Возврат
Окно приложения | неопределенный
get()
chrome.app.window.get(
id: string,
)
Получает AppWindow
с заданным идентификатором. Если окна с данным идентификатором не существует, возвращается значение null. Этот метод является новым в Chrome 33.
Параметры
- идентификатор
нить
Возврат
Окно приложения | неопределенный
getAll()
chrome.app.window.getAll()
Получает массив всех созданных в данный момент окон приложения. Этот метод является новым в 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