webRequest.StreamFilter.write()
向输出流写入响应数据。
你只能在 onstart
事件触发后调用此函数。
语法
js
filter.write(
data // ArrayBuffer 或 Uint8Array
)
参数
data
-
Uint8Array
或ArrayBuffer
:包含要传递给浏览器渲染引擎的数据的字节数组。
返回值
无。
浏览器兼容性
示例
该示例使用 write()
将响应的第一个数据块中的“示例”替换为“WebExtension 示例”。
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 });
// 只将 HTTP 响应中所有的“示例”替换为“WebExtension 示例”
str = str.replaceAll("示例", "WebExtension 示例");
filter.write(encoder.encode(str));
filter.disconnect();
};
//return {}; // 不需要返回任何内容
}
browser.webRequest.onBeforeRequest.addListener(
listener,
{ urls: ["https://example.com/*"], types: ["main_frame"] },
["blocking"],
);