Могу ли я использовать фильтр стиля слушателя с оператором "если"

Я пытаюсь взять расширение Chrome/ Firefox и запустить его на Edge.

Расширение chrome создает слушателя при вызове URL.

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

Расширение создает более 1000 таких слушателей для разных URL-адресов, а в Chrome работает нормально. В Edge я думаю, что переполняю кучу.

Есть ли способ, которым я могу создать 1 слушатель для всех URL-адресов, а затем в функции вызвать цикл 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
   }

Спасибо. Вы, ребята, великолепны.

0 ответов