Расширение Chrome: как постоянно проверять URL-адреса на новых вкладках, а затем отвечать действием для определенных URL-адресов? - PullRequest
0 голосов
/ 25 октября 2011

Привет. По профессии я не студент и не программист, но я пытаюсь создать быстрый прототип, чтобы донести идею.Я собрал воедино некоторый код из других вопросов StackOverflow и почти получил то, что мне нужно, но у меня возникла проблема с одной вещью: расширение будет работать ровно один раз, но не более, пока я не обновлю расширение через Chrome: // расширения.Я предполагаю, что что-то не так с элементом этой программы, который прослушивает новый URL, но я не могу понять, как заставить этот элемент постоянно слушать.Этот код работает в background.js прямо сейчас, хотя я также пробовал его в background.html.

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

// Called when the url of a tab changes.
// So we can notify users
    var notification = webkitNotifications.createNotification(
    '48.png',  
    'Alert!'
);
      // Called when the url of a tab changes.
      function checkForValidUrl(tab) {
        // Compare with a the URL
        if (tab.url.match(/google/)) {
          //then
          notification.show();
        }
      };
  // Listen for any changes to the URL of any tab.
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){
    if(changeInfo.status == "loading") {
        checkForValidUrl(tab);
    }
});

chrome.tabs.onSelectionChanged.addListener(function(tabId, selectInfo){
    chrome.tabs.getSelected(null, function(tab){
        checkForValidUrl(tab);
    });
});

1 Ответ

1 голос
/ 28 октября 2011

Я исправил это после того, как немного его взломал - у меня нет словаря, чтобы объяснить, что я сделал, но я решил опубликовать код на тот случай, если у кого-нибудь еще возникнет такая же (простая) проблема.

function checkForValidUrl(tabId, changeInfo, tab) {

var notification = webkitNotifications.createNotification(
'48.png',  
'Alert!', 
'Watch out for your privacy!'
);

// Compare with the URL
if (tab.url.match(/google/)) {
    //then
notification.show();
}
};

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){
    if(changeInfo.status == "loading") {
        checkForValidUrl(tabId, changeInfo, tab);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...