chrome extension indexof множественное значение из хранилища синхронизации

Пожалуйста, помогите решить эту недельную проблему: я хочу найти/индексировать URL-адрес вкладки из нескольких значений.
Я хочу запускать расширение только на определенной базе веб-сайта, когда пользователи вводят URL-адрес на странице параметров. Большое спасибо за помощь
Мой код руководства:

array = ["google", "yahoo", "facebook"];
chrome.webNavigation.onCompleted.addListener(function(details) {
chrome.tabs.getSelected(null, function(tab) {
    if (tab.url.indexOf("google") > -1 ) {
        "run extension code"
    }
    if (tab.url.indexOf("yahoo") > -1 ) {
        "run extension code"
    }
    if (tab.url.indexOf("facebook") > -1 ) {
        "run extension code"
    }});
});

Пожалуйста, помогите мне запустить это автоматически и получить опцию синхронизации из хранилища.


person Ronie Osorio    schedule 10.05.2017    source источник
comment
Я хочу запускать расширение только на определенной базе веб-сайта, когда пользователи вводят URL-адрес на странице параметров. Большое спасибо за помощь   -  person Ronie Osorio    schedule 10.05.2017
comment
Используйте фильтрацию событий.   -  person wOxxOm    schedule 10.05.2017
comment
@wOxxOm Мне трудно понять. могу я попросить пример? Спасибо.   -  person Ronie Osorio    schedule 10.05.2017
comment
Я пытаюсь применить ваш пример ссылки. Но это еще больше сбивает меня с толку, и мое расширение совершенно не работает :(   -  person Ronie Osorio    schedule 10.05.2017
comment
Добавьте код, который вы только что попробовали, в вопросе.   -  person wOxxOm    schedule 10.05.2017


Ответы (1)


Я получил решение по моей проблеме. Я решаю это в своем собственном исследовании. Большое спасибо за помощь. Это именно то, что я хочу.

var myurl = ["yahoo", "google", "bing"];
chrome.webNavigation.onCompleted.addListener(function(details) {
chrome.tabs.getSelected(null, function(tab) {
    for (var i = 0, icount = myurl.length; i < icount; i++) {
        if (tab.url.indexOf(myurl[i]) > -1) {

            "run code to enable extension"

          break; // halt for loop
        }
      };
    }); 
});
person Ronie Osorio    schedule 16.05.2017
comment
это не сработает, как вы ожидали. Вы предполагаете, что каждый раз, когда веб-навигация усложняется на какой-то вкладке, эта вкладка должна быть активной (если я правильно понимаю). У вас уже есть URL в деталях из webNavigation.onCompleted, вам не нужен API вкладок (кстати, этот метод вкладок устарел). Если вы хотите использовать webNavigation API, вам нужно протестировать frameId = 0, а затем указать ссылку на ваш массив. - person Wolf War; 16.05.2017
comment
также, как предложил wooxom, правильный способ использовать фильтры - person Wolf War; 16.05.2017
comment
извините, но я действительно не знаю, как использовать ваш фильтр предложений. Я новичок здесь. - person Ronie Osorio; 16.05.2017