我在 https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#Response_objects 中读到,您可以使用 addEventListener 在发生提取时触发。
我正在玩它,但我无法让它点火。这是代码。我也在使用 Chrome
addEventListener('fetch', event => alert('test'));
示例中的
fetch
事件仅在 Service Worker 中触发。当发生获取时,普通网页上不会触发任何内置事件。
但是,您可以挂钩全局获取函数,以便它执行您想要的操作。
window.fetch = new Proxy(window.fetch, {
apply(actualFetch, that, args) {
// Forward function call to the original fetch
const result = Reflect.apply(actualFetch, that, args);
// Do whatever you want with the resulting Promise
result.then((response) => {
console.log("fetch completed!", args, response);
});
return result;
}
});
每次获取完成时,这都会打印到控制台。