Описание
Используйте API chrome.devtools.panels для интеграции вашего расширения в пользовательский интерфейс окна инструментов разработчика: создавайте собственные панели, получайте доступ к существующим панелям и добавляйте боковые панели.
Каждая панель расширения и боковая панель отображаются как отдельная HTML-страница. Все страницы расширений, отображаемые в окне инструментов разработчика, имеют доступ ко всем частям API chrome.devtools , а также ко всем другим API расширений.
Вы можете использовать метод ` devtools.panels.setOpenResourceHandler для установки функции обратного вызова, которая обрабатывает запросы пользователей на открытие ресурса (обычно, щелчок по ссылке на ресурс в окне инструментов разработчика). Вызывается максимум один из установленных обработчиков; пользователи могут указать (с помощью диалогового окна «Настройки инструментов разработчика») либо поведение по умолчанию, либо расширение для обработки запросов на открытие ресурсов. Если расширение вызывает ` setOpenResourceHandler() несколько раз, сохраняется только последний обработчик.
Для получения общего представления об использовании API инструментов разработчика см. раздел «Краткое описание API инструментов разработчика».
Манифест
Пример
Следующий код добавляет панель, содержащуюся в Panel.html , представленную изображением FontPicker.png на панели инструментов разработчика и помеченную как Font Picker :
chrome.devtools.panels.create("Font Picker",
"FontPicker.png",
"Panel.html",
function(panel) { ... });
Следующий код добавляет в панель элементов боковую панель, содержащуюся в Sidebar.html и озаглавленную «Свойства шрифта» , а затем устанавливает её высоту равной 8ex :
chrome.devtools.panels.elements.createSidebarPane("Font Properties",
function(sidebar) {
sidebar.setPage("Sidebar.html");
sidebar.setHeight("8ex");
}
);
На скриншоте показан эффект, который этот пример окажет на окно «Инструменты разработчика»:

Чтобы опробовать этот API, установите пример API панелей инструментов разработчика из репозитория chrome-extension-samples .
Типы
Button
Кнопка, созданная расширением.
Характеристики
- onClicked
Событие<functionvoidvoid>
Срабатывает при нажатии кнопки.
Функция
onClicked.addListenerвыглядит следующим образом:(callback: function) => {...}
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:() => void
- обновлять
пустота
Обновляет атрибуты кнопки. Если некоторые из аргументов опущены или
null, соответствующие атрибуты не обновляются.Функция
updateвыглядит следующим образом:(iconPath?: string, tooltipText?: string, disabled?: boolean) => {...}
- iconPath
строка необязательный
Путь к новой иконке кнопки.
- всплывающая подсказка
строка необязательный
Текст отображается в виде всплывающей подсказки при наведении курсора мыши на кнопку.
- неполноценный
логический необязательный
Отключена ли кнопка.
ElementsPanel
Представляет собой панель «Элементы».
Характеристики
- onSelectionChanged
Событие<functionvoidvoid>
Событие срабатывает при выборе объекта на панели.
Функция
onSelectionChanged.addListenerвыглядит следующим образом:(callback: function) => {...}
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:() => void
- создать боковую панель
пустота
Создает панель внутри боковой панели панели.
Функция
createSidebarPaneвыглядит следующим образом:(title: string) => {...}
- заголовок
нить
Текст, отображаемый в заголовке боковой панели.
- возвраты
Promise< ExtensionSidebarPane >
В ожиданииФункция обратного вызова, которая срабатывает при создании боковой панели.
ExtensionPanel
Представляет собой панель, созданную расширением.
Характеристики
- onHidden
Событие<functionvoidvoid>
Срабатывает, когда пользователь переключается с панели управления на другую.
Функция
onHidden.addListenerвыглядит следующим образом:(callback: function) => {...}
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:() => void
- onSearch
Событие<functionvoidvoid>
Срабатывает при выполнении поискового действия (начало нового поиска, навигация по результатам поиска или отмена поиска).
Функция
onSearch.addListenerвыглядит следующим образом:(callback: function) => {...}
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(action: string, queryString?: string) => void
- действие
нить
- queryString
строка необязательный
- onShown
Событие<functionvoidvoid>
Событие срабатывает, когда пользователь переключается на панель.
Функция
onShown.addListenerвыглядит следующим образом:(callback: function) => {...}
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(window: Window) => void
- окно
Окно
- createStatusBarButton
пустота
Добавляет кнопку в строку состояния панели.
Функция
createStatusBarButtonвыглядит следующим образом:(iconPath: string, tooltipText: string, disabled: boolean) => {...}
- iconPath
нить
Путь к значку кнопки. Файл должен содержать изображение размером 64x24 пикселя, состоящее из двух значков размером 32x24 пикселя. Левый значок используется, когда кнопка неактивна; правый значок отображается, когда кнопка нажата.
- всплывающая подсказка
нить
Текст отображается в виде всплывающей подсказки при наведении курсора мыши на кнопку.
- неполноценный
логический
Отключена ли кнопка.
- возвраты
- показывать
пустота
Chrome 140+Панель отображается при активации соответствующей вкладки.
Функция
showвыглядит следующим образом:() => {...}
ExtensionSidebarPane
Боковая панель, созданная расширением.
Характеристики
- onHidden
Событие<functionvoidvoid>
Срабатывает, когда боковая панель скрывается в результате переключения пользователя с панели, на которой она размещена.
Функция
onHidden.addListenerвыглядит следующим образом:(callback: function) => {...}
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:() => void
- onShown
Событие<functionvoidvoid>
Событие срабатывает, когда боковая панель становится видимой в результате переключения пользователя на панель, на которой она размещена.
Функция
onShown.addListenerвыглядит следующим образом:(callback: function) => {...}
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(window: Window) => void
- окно
Окно
- setExpression
пустота
Задает выражение, которое вычисляется на проверяемой странице. Результат отображается в боковой панели.
Функция
setExpressionвыглядит следующим образом:(expression: string, rootTitle?: string) => {...}
- выражение
нить
Выражение, которое будет оцениваться в контексте проверяемой страницы. Объекты JavaScript и узлы DOM отображаются в разворачиваемом дереве, аналогичном консоли/окну просмотра.
- rootTitle
строка необязательный
Необязательный заголовок для корня дерева выражений.
- возвраты
Обещание<пустота>
В ожиданииФункция обратного вызова, вызываемая после обновления боковой панели результатами вычисления выражения.
- setHeight
пустота
Задает высоту боковой панели.
Функция
setHeightвыглядит следующим образом:(height: string) => {...}
- высота
нить
Указание размера, аналогичное CSS, например,
'100px'или'12ex'.
- setObject
пустота
Задает объект, соответствующий стандарту JSON, для отображения в боковой панели.
Функция
setObjectвыглядит следующим образом:(jsonObject: string, rootTitle?: string) => {...}
- jsonObject
нить
Объект, который будет отображаться в контексте проверяемой страницы. Оценка производится в контексте вызывающего объекта (API-клиента).
- rootTitle
строка необязательный
Необязательный заголовок для корня дерева выражений.
- возвраты
Обещание<пустота>
В ожиданииФункция обратного вызова, которая срабатывает после обновления боковой панели с помощью соответствующего объекта.
- setPage
пустота
Задает HTML-страницу для отображения в боковой панели.
Функция
setPageвыглядит следующим образом:(path: string) => {...}
- путь
нить
Относительный путь к странице расширения, которая будет отображаться в боковой панели.
SourcesPanel
Представляет собой панель «Источники».
Характеристики
- onSelectionChanged
Событие<functionvoidvoid>
Событие срабатывает при выборе объекта на панели.
Функция
onSelectionChanged.addListenerвыглядит следующим образом:(callback: function) => {...}
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:() => void
- создать боковую панель
пустота
Создает панель внутри боковой панели панели.
Функция
createSidebarPaneвыглядит следующим образом:(title: string) => {...}
- заголовок
нить
Текст, отображаемый в заголовке боковой панели.
- возвраты
Promise< ExtensionSidebarPane >
В ожиданииФункция обратного вызова, которая срабатывает при создании боковой панели.
Theme
Тема оформления, используемая в инструментах разработчика.
Перечисление
"по умолчанию" "темный"
Тема оформления инструментов разработчика по умолчанию. Это всегда светлая тема.
Темная тема.
Характеристики
elements
Панель элементов.
Тип
sources
Панель источников.
Тип
themeName
Название цветовой темы, заданной в настройках инструментов разработчика пользователя. Возможные значения: default (по умолчанию) и dark .
Тип
нить
Методы
create()
chrome.devtools.panels.create(
title: string,
iconPath: string,
pagePath: string,
): Promise<ExtensionPanel>
Создает панель расширения.
Параметры
- заголовок
нить
Заголовок, отображаемый рядом со значком расширения на панели инструментов разработчика.
- iconPath
нить
Путь к значку панели относительно каталога расширений.
- pagePath
нить
Путь к HTML-странице панели относительно каталога расширений.
Возвраты
Promise< ExtensionPanel >
В ожиданииФункция, которая вызывается при создании панели.
openResource()
chrome.devtools.panels.openResource(
url: string,
lineNumber: number,
columnNumber?: number,
): Promise<void>
Запрашивает у DevTools открытие URL-адреса в панели инструментов разработчика.
Параметры
- url
нить
URL ресурса для открытия.
- номер строки
число
Указывает номер строки, до которой следует прокрутить ресурс при его загрузке.
- columnNumber
число необязательно
Chrome 114+Указывает номер столбца, к которому следует прокрутить ресурс при его загрузке.
Возвраты
Обещание<пустота>
В ожиданииФункция, вызываемая после успешной загрузки ресурса.
setOpenResourceHandler()
chrome.devtools.panels.setOpenResourceHandler(
callback?: function,
): void
Указывает функцию, которая будет вызываться при щелчке пользователя по ссылке на ресурс в окне «Инструменты разработчика». Чтобы отменить обработчик, вызовите метод без параметров или передайте в качестве параметра значение null.
Параметры
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(resource: Resource, lineNumber: number) => void
- ресурс
Объект
devtools.inspectedWindow.Resource, содержащий информацию о ресурсе, по которому был произведен щелчок. - номер строки
число
Указывает номер строки в ресурсе, по которой был выполнен щелчок.
setThemeChangeHandler()
chrome.devtools.panels.setThemeChangeHandler(
callback?: function,
): void
Указывает функцию, которая будет вызываться при изменении текущей темы в инструментах разработчика. Чтобы отменить обработчик, вызовите метод без параметров или передайте в качестве параметра null .