我可以使用带有#34; if"的监听器样式过滤器吗?声明

时间:2017-02-14 20:57:48

标签: javascript google-chrome-extension microsoft-edge firefox-webextensions microsoft-edge-extension

我尝试使用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
   }

谢谢。你们很棒。

0 个答案:

没有答案