chrome.app.window

Описание

Используйте 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 x height в пикселях.

    Функция 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

Хром 45+

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

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

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

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

Методы

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