webRequest.onCompleted
Срабатывает, когда запрос завершен.
Это событие является только информационным.
Синтаксис
browser.webRequest.onCompleted.addListener( listener, // function filter, // object extraInfoSpec // optional array of strings ) browser.webRequest.onCompleted.removeListener(listener) browser.webRequest.onCompleted.hasListener(listener)
События имеют три функции:
addListener(callback, filter, extraInfoSpec)-
Добавляет обработчик этого события.
removeListener(listener)-
Прекращает прослушивание этого события. Аргумент
listener— это обработчик, который необходимо удалить. hasListener(listener)-
Проверяет, зарегистрирован ли
listenerдля данного события. Возвращаетtrue, если обработчик зарегистрирован,false, в противном случае.
Синтаксис addListener
Параметры
callback-
Функция, которая будет вызвана при возникновении этого события. Функции будут переданы следующие аргументы:
details-
object. Подробная информация о запросе. Подробнее см. в разделе details.
filter-
webRequest.RequestFilter. Фильтр, который ограничивает события, которые будут отправлены этому обработчику. -
extraInfoSpecНеобязательно -
arrayдляstring. Дополнительные опции для события. Можно передать только одно значение:-
"responseHeaders": включитьresponseHeadersв объектdetailsпередаваемый обработчику
-
Дополнительные объекты
details
-
string. Если запрос из вкладки, открытой в контекстной идентичности, — идентификатор хранилища cookie контекстной идентичности. documentUrl-
string. URL документа, в котором будет загружен ресурс. Например, если веб-страница по адресу "https://example.com" содержит изображение или iframe, тоdocumentUrlдля изображения или iframe будет "https://example.com". Для верхнего уровня документаdocumentUrlне определено. frameId-
integer. Ноль, если запрос происходит в основном фрейме; положительное значение — это ID подфрейма, в котором происходит запрос. Если документ (под)фрейма загружается (type—main_frameилиsub_frame),frameIdуказывает ID этого фрейма, а не ID внешнего фрейма. Идентификаторы фреймов уникальны в пределах вкладки. fromCache-
boolean. Указывает, был ли этот ответ получен из кэша на диске. incognito-
boolean. Является ли запрос из окна приватного просмотра. ip-
string. IP-адрес сервера, к которому был отправлен запрос. Может быть литеральной IPv6-адресом. method-
string. Стандартный HTTP-метод: например, "GET" или "POST". originUrl-
string. URL ресурса, который инициировал запрос. Например, если "https://example.com" содержит ссылку, и пользователь на неё нажимает, тоoriginUrlдля полученного запроса будет "https://example.com".originUrlчасто, но не всегда, совпадает сdocumentUrl. Например, если страница содержит iframe, и iframe содержит ссылку, которая загружает новый документ в iframe, тоdocumentUrlдля полученного запроса будет родительским документом iframe, ноoriginUrlбудет URL документа в iframe, содержащем ссылку. parentFrameId-
integer. ID фрейма, содержащего фрейм, который отправил запрос. Установлено в -1, если родительского фрейма нет. proxyInfo-
object. Это свойство присутствует только если запрос обрабатывается прокси-сервером. Оно содержит следующие свойства:host-
string. Имя хоста прокси-сервера. port-
integer. Номер порта прокси-сервера. type-
string. Тип прокси-сервера. Один из:- "http": HTTP-прокси (или SSL CONNECT для HTTPS)
- "https": HTTP-прокси через TLS-соединение с прокси
- "socks": SOCKS v5 прокси
- "socks4": SOCKS v4 прокси
- "direct": без прокси
- "unknown": неизвестный прокси
username-
string. Имя пользователя для прокси-сервиса. proxyDNS-
boolean. Истина, если прокси выполнит разрешение доменных имён на основе предоставленного имени хоста, что означает, что клиент не должен выполнять свой собственный DNS-запрос. failoverTimeout-
integer. Таймаут переключения в секундах. Если соединение с прокси прервано, прокси не будет использоваться снова в течение этого периода.
requestId-
string. Идентификатор запроса. Идентификаторы запросов уникальны в сеансе браузера, поэтому вы можете использовать их для связи различных событий, связанных с одним и тем же запросом. -
responseHeadersНеобязательно -
webRequest.HttpHeaders. HTTP-заголовки ответа, полученные вместе с этим ответом. statusCode-
integer. Стандартный HTTP-код состояния, возвращённый сервером. statusLine-
string. HTTP-строка состояния ответа или строка 'HTTP/0.9 200 OK' для ответов HTTP/0.9 (т. е. ответов, в которых отсутствует строка состояния) или пустая строка, если нет заголовков. tabId-
integer. Идентификатор вкладки, в которой происходит запрос. Установлено в -1, если запрос не связан с вкладкой. thirdParty-
boolean. Указывает, является ли запрос и его иерархия окна сторонними. timeStamp-
number. Время срабатывания события в миллисекундах с начала эпохи. type-
webRequest.ResourceType. Тип запрашиваемого ресурса: например, "image", "script", "stylesheet". url-
string. Цель запроса. urlClassification-
object. Тип отслеживания, связанный с запросом, если запрос был классифицирован Firefox Tracking Protection. Это объект со следующими свойствами:firstParty-
arrayдляstrings. Флаги классификации для первого запроса. thirdParty-
arrayдляstrings. Флаги классификации для запроса или иерархии его окон, являющихся сторонними.
Флаги классификации включают:
-
fingerprintingиfingerprinting_content: указывает, что запрос участвует в определении устройства.fingerprinting_contentуказывает, что запрос загружен с источника, который был обнаружен как определяющий устройство, но не считается участвующим в отслеживании, например, платёжный провайдер. -
cryptominingиcryptomining_content: аналогично категории определения устройства, но для ресурсов криптомайнинга. -
tracking,tracking_ad,tracking_analytics,tracking_social, иtracking_content: указывает, что запрос участвует в отслеживании.tracking— это любой общий запрос отслеживания, суффиксыad,analytics,social, иcontentопределяют тип трекера. -
any_basic_tracking: метафлаг, который объединяет любые флаги отслеживания и определения устройства, исключаяtracking_contentиfingerprinting_content. -
any_strict_tracking: метафлаг, который объединяет любые флаги отслеживания и определения устройства, включаяtracking_contentиfingerprinting_content. -
any_social_tracking: метафлаг, который объединяет любые флаги социального отслеживания.
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
onCompleted |
Да | 14 | 45 | ? | Да | 14extraInfoSpec опции не поддерживаются. |
? | ? | 48 | ? | Нет | ? |
Примеры
let target = "https://developer.mozilla.org/*"; /* e.g. "https://developer.mozilla.org/en-US/" 200 or: "https://developer.mozilla.org/en-US/xfgkdkjdfhs" 404 */ function logResponse(responseDetails) { console.log(responseDetails.url); console.log(responseDetails.statusCode); } browser.webRequest.onCompleted.addListener( logResponse, {urls: [target]} );
Примеры расширений
Примечание: Этот API основан на API Chromium's chrome.webRequest. Данная документация получена из web_request.json кода Chromium.
© 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/API/webRequest/onCompleted