webRequest.StreamFilter.close()
关闭请求。在调用后,后续的响应数据不再会传递给浏览器的渲染引擎,也不会再给扩展传递更多的过滤器事件。
请注意此函数与 disconnect()
之间的区别。使用 disconnect()
后,浏览器将继续处理任何进一步的响应数据,但这些数据将无法通过过滤器访问。使用 close()
后,浏览器将忽略尚未传递到渲染引擎的任何响应数据。
当你不再需要与响应进行交互时,应始终第一时间调用 disconnect()
或 close()
。
你只能在 onstart
事件触发后调用此函数。
语法
js
filter.close()
参数
无。
返回值
无。
浏览器兼容性
示例
该示例将替换页面内容为“替换内容”:
js
function listener(details) {
let filter = browser.webRequest.filterResponseData(details.requestId);
filter.onstart = (event) => {
console.log("开始接收数据");
let encoder = new TextEncoder();
filter.write(encoder.encode("替换内容"));
filter.close();
};
}
browser.webRequest.onBeforeRequest.addListener(
listener,
{ urls: ["https://example.org/"], types: ["main_frame"] },
["blocking"],
);