1

我正在尝试使用 chrome/firefox 扩展并在 Edge 上运行它。

调用 url 时,chrome 扩展程序会创建一个侦听器。

    chrome.webRequest.onBeforeRequest.addListener(onBeforeRequest, {'urls': urls, 'types': ['main_frame']}, ['blocking', 'requestBody']);

该扩展为不同的 url 创建了 1000 多个这样的侦听器,并且在 chrome 中它可以正常工作。在 Edge 中,我认为我溢出了堆。

有没有一种方法可以为所有 URL 创建 1 个侦听器,然后在函数中调用 for 循环以通过 url 过滤器并查看当前 url 是否匹配?

例如,这就是我尝试过的。

    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
   }

谢谢你。你们太棒了。

4

0 回答 0