webRequest.filterResponseData()

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ôtepour l'hôte).

Syntaxe

js
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 de details qui est passé dans n'importe quel écouteur d'événement webRequest.

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 :

js
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é des navigateurs

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Firefox for Android
Safari on iOS
filterResponseData

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support