Utilisez cette fonction pour créer un objet webRequest.StreamFilter
pour une requête particulière.
Vous pouvez ensuite utiliser le filtre de flux pour surveiller et modifier la réponse. Vous appelez typiquement cette fonction à partir d'un écouteur d'événements webRequest
.
Pour utiliser cette API, vous devez avoir la permission de l'API "webRequestBlocking", ainsi que les permissions normales nécessaires à l'auditeur de l'événement (la permission "webRequest" et la permission hôte pour l'hôte).
Syntaxe
var filter = browser.webRequest.filterResponseData(
requestId // string
)
Paramètres
requestId
string
. ID de la requête à filtrer. Vous pouvez l'obtenir à partir de l'objet dedetails
qui est passé dans n'importe quel écouteur d'événementwebRequest
.
Valeur retournée
Un objet webRequest.StreamFilter
que vous pouvez utiliser pour surveiller et modifier la réponse.
Exemples
Cet exemple, tiré de l'extension http-response, crée un filtre dans webRequest.onBeforeRequest
et l'utilise pour modifier la réponse :
function listener(details) {
let filter = browser.webRequest.filterResponseData(details.requestId);
let decoder = new TextDecoder("utf-8");
let encoder = new TextEncoder();
filter.ondata = event => {
let str = decoder.decode(event.data, {stream: true});
// Just change any instance of Example in the HTTP response
// to WebExtension Example.
str = str.replace(/Example/g, 'WebExtension Example');
filter.write(encoder.encode(str));
filter.disconnect();
}
return {};
}
browser.webRequest.onBeforeRequest.addListener(
listener,
{urls: ["https://example.com/*"], types: ["main_frame"]},
["blocking"]
);
Example extensions
Compatibilité du navigateur
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.