Боковые панели
Боковая панель — это область, отображаемая сбоку окна браузера рядом с веб-страницей. Эта страница описывает боковые панели, их спецификацию, дизайн и примеры использования.
Браузер предоставляет интерфейс, позволяющий пользователю выбирать боковую панель для отображения. Например, в Firefox есть меню «Вид» > «Боковая панель». Каждое окно браузера может отображать свою собственную боковую панель, которая отображается на каждой вкладке в окне.
Браузер может включать ряд встроенных боковых панелей. Например, Firefox включает боковую панель для взаимодействия с закладками:
Используя ключ sidebar_action в файле manifest.json, расширение может добавить свою собственную боковую панель в браузер. Она будет отображаться вместе со встроенными боковыми панелями, и пользователь сможет открыть её с помощью того же механизма, что и для встроенных.
Как и всплывающее окно действия браузера, содержимое боковой панели задаётся как HTML-документ. Когда пользователь открывает боковую панель, документ боковой панели загружается в каждое открытое окно браузера. Каждое окно получает свой экземпляр документа. При открытии новых окон они также получают свои собственные документы боковой панели.
Документ для конкретной вкладки можно задать с помощью функции sidebarAction.setPanel(). Боковая панель может определить, к какому окну она относится, используя API windows.getCurrent():
// sidebar.js browser.windows.getCurrent({ populate: true }).then((windowInfo) => { myWindowId = windowInfo.id; });
Это полезно, если боковая панель хочет отображать различное содержимое для различных окон. Пример этого можно найти в примере «annotate-page».
Документы боковых панелей получают доступ к тому же набору привилегированных JavaScript-API, что и скрипты фонового и всплывающего окна расширения. Они могут получить прямой доступ к фоновой странице (если боковая панель не принадлежит окну в режиме инкогнито) с помощью runtime.getBackgroundPage(), а также взаимодействовать со скриптами содержимого или нативными приложениями с помощью API обмена сообщениями, таких как tabs.sendMessage() и runtime.sendNativeMessage().
Документы боковых панелей разгружаются, когда закрывается окно браузера или пользователь закрывает боковую панель. Это означает, что в отличие от фоновых страниц, документы боковых панелей не загружаются постоянно, но, в отличие от всплывающих окон действия браузера, они остаются загруженными, пока пользователь взаимодействует с веб-страницами.
Когда расширение, определяющее боковую панель, устанавливается впервые, его боковая панель открывается автоматически. Это призвано помочь пользователю понять, что расширение включает боковую панель. Обратите внимание, что расширение не может открыть боковую панель программно: боковые панели могут открываться только пользователем.
Определение боковых панелей
Для определения боковой панели определите документ по умолчанию с помощью ключа sidebar_action в файле manifest.json, вместе с заголовком и иконкой по умолчанию:
"sidebar_action": { "default_title": "My sidebar", "default_panel": "sidebar.html", "default_icon": "sidebar_icon.png" }
Заголовок, панель и иконка могут быть изменены программно с помощью API sidebarAction.
Заголовок и иконка отображаются пользователю в любом интерфейсе браузера для списка боковых панелей, таком как меню «Вид > Боковая панель» в Firefox.
Дизайн боковых панелей
Подробные сведения о том, как спроектировать веб-страницу боковой панели, чтобы она соответствовала стилю Firefox, можно найти в документации Acorn Design System.
Пример
В репозитории webextensions-examples на GitHub есть пример annotate-page, реализующий боковую панель.
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars