我尝试使用chrome / firefox扩展程序并在Edge上运行它。
在调用网址时,Chrome扩展程序会创建一个侦听器。
chrome.webRequest.onBeforeRequest.addListener(onBeforeRequest, {'urls': urls, 'types': ['main_frame']}, ['blocking', 'requestBody']);
该扩展程序为不同的网址创建了超过1000个这些侦听器,并且在Chrome中它可以正常工作。在边缘,我想我已经溢出了堆。
有没有办法可以为所有网址创建1个侦听器,然后在函数中调用for循环来浏览网址过滤器并查看当前网址是否匹配?
例如,这就是我尝试过的。
for (var f_key in resourceRecords) {
var matchedURL = false;
var jLength = resourceFunctions[f_key]['urls'].length;
for (var j = 0; j < jLength; j++) {
if (resourceFunctions[f_key]['urls'][j].matches(details['url'])) {
matchedURL = true;
break;
}
}
if (!matchedURL) {
continue;
}
//Code from the chrome extension
}
谢谢。你们很棒。