Описание
Используйте API chrome.windows
для взаимодействия с окнами браузера. С помощью этого API можно создавать, изменять и переупорядочивать окна в браузере.
Разрешения
При запросе объект windows.Window
содержит массив объектов tabs.Tab
. Если вам нужен доступ к свойствам url
, pendingUrl
, title
или favIconUrl
объекта tabs.Tab
, необходимо объявить разрешение "tabs"
в манифесте . Например:
{
"name": "My extension",
...
"permissions": ["tabs"],
...
}
Концепции и использование
Текущее окно
Многие функции в системе расширений принимают необязательный аргумент windowId
, который по умолчанию соответствует текущему окну.
Текущее окно — это окно, содержащее код, который выполняется в данный момент. Важно понимать, что оно может отличаться от самого верхнего или активного окна.
Например, расширение создаёт несколько вкладок или окон из одного HTML-файла, и этот HTML-файл содержит вызов tabs.query()
. Текущим окном считается окно, содержащее страницу, выполнившую вызов, независимо от того, какое окно находится сверху.
В случае сервис-воркеров значение текущего окна возвращается к последнему активному окну. В некоторых случаях для фоновых страниц текущее окно может отсутствовать.
Примеры
Чтобы опробовать этот API, установите пример API Windows из репозитория chrome-extension-samples .
Типы
CreateType
Указывает, какой тип окна браузера следует создать. «panel» устарело и доступно только для существующих разрешенных расширений в Chrome OS.
Перечисление
"нормальный" "неожиданно возникнуть" "панель"
Определяет окно как стандартное.
Определяет окно как всплывающее.
Определяет окно как панель.
QueryOptions
Характеристики
- заселить
логическое необязательное
Если значение равно true, объект
windows.Window
имеет свойствоtabs
, содержащее список объектовtabs.Tab
. ОбъектыTab
содержат свойстваurl
,pendingUrl
,title
иfavIconUrl
только в том случае, если файл манифеста расширения содержит разрешение"tabs"
. - Типы окон
WindowType [] необязательно
Если установлено, возвращаемое свойство
windows.Window
фильтруется по типу. Если не установлено, фильтр по умолчанию устанавливается на['normal', 'popup']
.
Window
Характеристики
- всегда наверху
булев
Будет ли окно всегда отображаться поверх остальных окон.
- сосредоточенный
булев
Является ли окно в данный момент активным.
- высота
номер необязательно
Высота окна, включая рамку, в пикселях. В некоторых случаях окну может быть не назначено свойство
height
, например, при запросе закрытых окон через APIsessions
. - идентификатор
номер необязательно
Идентификатор окна. Идентификаторы окон уникальны в рамках сеанса браузера. В некоторых случаях окну может быть не назначено свойство
ID
; например, при запросе окон с использованием APIsessions
идентификатор сеанса может присутствовать. - инкогнито
булев
Является ли окно инкогнито.
- левый
номер необязательно
Смещение окна от левого края экрана в пикселях. В некоторых случаях окну может быть не назначено свойство
left
, например, при запросе закрытых окон из APIsessions
. - sessionId
строка необязательная
Идентификатор сеанса, используемый для уникальной идентификации окна, полученный из API
sessions
. - состояние
WindowState необязательно
Состояние этого окна браузера.
- вкладки
Tab [] необязательно
Массив объектов
tabs.Tab
представляющих текущие вкладки в окне. - вершина
номер необязательно
Смещение окна от верхнего края экрана в пикселях. В некоторых случаях окну может быть не назначено свойство
top
, например, при запросе закрытых окон из APIsessions
. - тип
WindowType необязательно
Это тип окна браузера.
- ширина
номер необязательно
Ширина окна, включая рамку, в пикселях. В некоторых случаях окну может быть не назначено свойство
width
, например, при запросе закрытых окон через APIsessions
.
WindowState
Состояние этого окна браузера. В некоторых случаях окну может быть не назначено свойство state
, например, при запросе закрытых окон из API sessions
.
Перечисление
"нормальный" "минимизирован" "максимизированный" "полноэкранный" "заблокированный-полноэкранный"
Нормальное состояние окна (не свернутое, не развернутое и не полноэкранное).
Свернутое состояние окна.
Развернутое состояние окна.
Состояние полноэкранного окна.
Заблокированное полноэкранное состояние окна. Из этого полноэкранного состояния невозможно выйти действием пользователя, и оно доступно только для расширений из списка разрешённых в Chrome OS.
WindowType
Это тип окна браузера. В некоторых случаях окну может быть не назначено свойство type
, например, при запросе закрытых окон из API sessions
.
Перечисление
"нормальный" "неожиданно возникнуть" "панель" "приложение" "devtools"
Обычное окно браузера.
Всплывающее окно браузера.
Устарело в этом API. Окно в стиле панели приложения Chrome. Расширения могут видеть только окна своих панелей.
Устарело в этом API. Окно приложения Chrome. Расширения могут видеть только окна своих приложений.
Окно «Инструменты разработчика».
Характеристики
WINDOW_ID_CURRENT
Значение windowId, представляющее текущее окно .
Ценить
-2
WINDOW_ID_NONE
Значение windowId, представляющее отсутствие окна браузера Chrome.
Ценить
-1
Методы
create()
chrome.windows.create(
createData?: object,
callback?: function,
): Promise<Window | undefined>
Создает (открывает) новое окно браузера с любыми дополнительными размерами, положением или URL-адресом по умолчанию.
Параметры
- createData
объект необязательный
- сосредоточенный
логическое необязательное
Если
true
, открывается активное окно. Еслиfalse
, открывается неактивное окно. - высота
номер необязательно
Высота нового окна в пикселях, включая рамку. Если не указано, по умолчанию используется естественная высота.
- инкогнито
логическое необязательное
Должно ли новое окно быть окном в режиме инкогнито.
- левый
номер необязательно
Число пикселей, на которое нужно отстоять от левого края экрана для нового окна. Если не указано, новое окно смещается естественным образом относительно последнего окна в фокусе. Это значение игнорируется для панелей.
- setSelfAsOpener
логическое необязательное
Chrome 64+Если
true
, то свойство 'window.opener' вновь созданного окна устанавливается на вызывающую сторону и находится в той же единице связанных контекстов просмотра, что и вызывающая сторона. - состояние
WindowState необязательно
Хром 44+Начальное состояние окна. Состояния
minimized
,maximized
иfullscreen
не могут сочетаться сleft
,top
,width
илиheight
. - tabId
номер необязательно
Идентификатор вкладки для добавления в новое окно.
- вершина
номер необязательно
Число пикселей, на которое нужно отстоять от верхнего края экрана для нового окна. Если не указано, новое окно смещается естественным образом относительно последнего окна в фокусе. Это значение игнорируется для панелей.
- тип
CreateType необязательно
Указывает, какой тип окна браузера следует создать.
- URL-адрес
строка | строка[] необязательно
URL-адрес или массив URL-адресов, которые будут открываться как вкладки в окне. Полные URL-адреса должны включать схему, например, «http://www.google.com», а не «www.google.com». Неполные URL-адреса считаются относительными в расширении. По умолчанию используется страница «Новая вкладка».
- ширина
номер необязательно
Ширина нового окна в пикселях, включая рамку. Если не указано, по умолчанию используется естественная ширина.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(window?: Window) => void
- окно
Окно опционально
Содержит подробную информацию о созданном окне.
Возврат
Обещание< Окно | не определено>
Хром 88+
get()
chrome.windows.get(
windowId: number,
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window>
Получает сведения об окне.
Параметры
- windowId
число
- queryOptions
QueryOptions необязательны
Хром 88+ - перезвонить
функция необязательна
Параметр
callback
выглядит так:(window: Window) => void
- окно
Возврат
Обещание< Окно >
Хром 88+
getAll()
chrome.windows.getAll(
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window[]>
Получает все окна.
Параметры
- queryOptions
QueryOptions необязательны
Хром 88+ - перезвонить
функция необязательна
Параметр
callback
выглядит так:(windows: Window[]) => void
- окна
Окно []
Возврат
Обещание< Окно []>
Хром 88+
getCurrent()
chrome.windows.getCurrent(
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window>
Получает текущее окно .
Параметры
- queryOptions
QueryOptions необязательны
Хром 88+ - перезвонить
функция необязательна
Параметр
callback
выглядит так:(window: Window) => void
- окно
Возврат
Обещание< Окно >
Хром 88+
getLastFocused()
chrome.windows.getLastFocused(
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window>
Возвращает окно, которое было в фокусе последним — обычно это окно «сверху».
Параметры
- queryOptions
QueryOptions необязательны
Хром 88+ - перезвонить
функция необязательна
Параметр
callback
выглядит так:(window: Window) => void
- окно
Возврат
Обещание< Окно >
Хром 88+
remove()
chrome.windows.remove(
windowId: number,
callback?: function,
): Promise<void>
Удаляет (закрывает) окно и все вкладки внутри него.
Параметры
- windowId
число
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 88+
update()
chrome.windows.update(
windowId: number,
updateInfo: object,
callback?: function,
): Promise<Window>
Обновляет свойства окна. Укажите только те свойства, которые требуется изменить; неуказанные свойства остаются без изменений.
Параметры
- windowId
число
- обновлениеИнформация
объект
- привлечьВнимание
логическое необязательное
Если задано
true
, окно отображается таким образом, чтобы привлечь внимание пользователя к нему, не меняя при этом фокус окна. Эффект сохраняется до тех пор, пока пользователь не переключит фокус на окно. Этот параметр не действует, если окно уже находится в фокусе. Установите значениеfalse
, чтобы отменить предыдущий запросdrawAttention
. - сосредоточенный
логическое необязательное
Если
true
, окно выводится на передний план; не может сочетаться с состоянием «свёрнуто». Еслиfalse
, следующее окно в z-порядке выводится на передний план; не может сочетаться с состоянием «на весь экран» или «развёрнуто». - высота
номер необязательно
Высота окна (в пикселях). Это значение игнорируется для панелей.
- левый
номер необязательно
Смещение окна от левого края экрана (в пикселях). Это значение игнорируется для панелей.
- состояние
WindowState необязательно
Новое состояние окна. Состояния «свёрнуто», «развёрнуто» и «на весь экран» нельзя комбинировать со свойствами «слева», «сверху», «ширина» или «высота».
- вершина
номер необязательно
Смещение окна от верхнего края экрана (в пикселях). Это значение игнорируется для панелей.
- ширина
номер необязательно
Ширина окна (в пикселях). Это значение игнорируется для панелей.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(window: Window) => void
- окно
Возврат
Обещание< Окно >
Хром 88+
События
onBoundsChanged
chrome.windows.onBoundsChanged.addListener(
callback: function,
)
Срабатывает при изменении размера окна; это событие отправляется только после фиксации новых границ, а не для текущих изменений.
onCreated
chrome.windows.onCreated.addListener(
callback: function,
filters?: object,
)
Срабатывает при создании окна.
Параметры
onFocusChanged
chrome.windows.onFocusChanged.addListener(
callback: function,
filters?: object,
)
Срабатывает при смене текущего окна в фокусе. Возвращает chrome.windows.WINDOW_ID_NONE
, если все окна Chrome потеряли фокус. Примечание: в некоторых оконных менеджерах Linux WINDOW_ID_NONE
всегда отправляется непосредственно перед переключением с одного окна Chrome на другое.
Параметры
- перезвонить
функция
Хром 46+Параметр
callback
выглядит так:(windowId: number) => void
- windowId
число
Идентификатор нового окна, получившего фокус.
- фильтры
объект необязательный
- Типы окон
ТипОкна []
Условия, которым должен удовлетворять тип удаляемого окна. По умолчанию он удовлетворяет
['normal', 'popup']
.
onRemoved
chrome.windows.onRemoved.addListener(
callback: function,
filters?: object,
)
Срабатывает при удалении (закрытии) окна.
Параметры
- перезвонить
функция
Хром 46+Параметр
callback
выглядит так:(windowId: number) => void
- windowId
число
Идентификатор удаленного окна.
- фильтры
объект необязательный
- Типы окон
ТипОкна []
Условия, которым должен удовлетворять тип удаляемого окна. По умолчанию он удовлетворяет
['normal', 'popup']
.