This page was translated from English by the community.Learn more and join the MDN Web Docs community.
JavaScript APIs
JavaScript WebExtension API может быть использован вфоновых скриптах расширения, а так же в любых других документах, поставляемых вместе с расширением, таких как документы во всплывающих окнах после нажатия кнопок активации расширенияbrowser actionна панели инструментов илиpage action в строке адреса,боковой панели,страницах настроек илиновых открытых вкладках. Некоторые из этих API могут быть доступны навстраиваемых в страницу скриптах (см.список в руководстве по встраиваемым скриптам).
Для использования отдельных более продвинутых API, необходимозапросить разрешения в manifest.json вашего дополнения.
Вы можете получить доступ к API, используя пространство имёнbrowser:
function logTabs(tabs) { console.log(tabs);}browser.tabs.query({ currentWindow: true }, logTabs);Многие API выполняются асинхронно, возвращаяPromise:
function logCookie(c) { console.log(c);}function logError(e) { console.error(e);}var setCookie = browser.cookies.set({ url: "/" });setCookie.then(logCookie, logError);Обратите внимание, что это отличается от расширений Google Chrome, которые используют пространство имёнchrome вместоbrowser и колбэки для асинхронных функций вместо промисов.
Для поддержки портирования, реализация Firefox WebExtension API так же поддерживает пространство имёнchrome и использование колбэков. Это позволяет в большинстве случаев не изменять код, изначально написанный для Chrome.
Mozilla так же предоставляет полифил, который позволяет коду, использующемуbrowser и промисы, работать без изменений в Chrome:https://github.com/mozilla/webextension-polyfill.
Microsoft Edge использует пространство имёнbrowser, но ещё не поддерживает, основанный на промисах асинхронный API. В Edge на данный момент асинхронные вызовы API должны использовать колбэки.
Не все браузеры поддерживают все API: детали см.Browser support for JavaScript APIs.
- cookies
Позволяет расширениям получать и устанавливать куки, а также сообщать об их изменении.
- downloads
Позволяет расширениям взаимодействовать с менеджером загрузки браузера. Этот модуль API можно использовать для загрузки, отмены, приостановки, возобновления загрузки файлов и отображения загруженных файлов в файловом менеджере.
- windows
Взаимодействие с окнами браузера. Вы можете использовать этот API, чтобы получить информацию об открытых окнах, а также открывать, изменять и закрывать окна. Вы также можете обрабатывать события открытия, закрытия окна, и активировать события.
- Веб Запрос
Добавляет обработчики событий на различных стадиях HTTP запроса. Обработчик получить детальную информацию о запросе и способен изменить или отменить запрос.