问题描述
出于某种原因,Chrome 扩展 API 中的 chrome.webRequest.onBeforeRequest
在您首次加载页面时会触发不一致数量的回调(请求),而不是在您重新加载同一页面时。
只需将以下内容添加到 google 扩展程序的 background.js
文件中,您就可以观察到我所描述的内容。
let requestCount = 0
chrome.webRequest.onBeforeRequest.addListener((request) => {
// resets the count when page is starting to load
if (request.type == 'main_frame') {
requestCount = 0
}
requestCount++
console.log('request count: ',requestCount);
},{urls: ['<all_urls>']})
例如,如果您使用以下 url https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API 进行测试。
在第一次加载时 onBeforeRequest
将触发 21 次。
request count: 21
然后,如果您重新加载页面,onBeforeRequest
将触发 9 次。
request count: 9
(这个模式在我试过的所有页面中都是一致的)
是什么导致了这种情况?
我该怎么做才能使 onBeforeRequest
表现得好像页面是在每次加载时首次加载一样?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)