Chrome扩展程序:如何不断检查新标签上的网址,然后针对某些网址采取操作回复?

时间:2011-10-25 18:09:49

标签: google-chrome plugins

嗨 - 我不是一个学生或程序员的交易,但我正试图敲一个快速的原型来获得一个想法。我从其他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 个答案:

答案 0 :(得分:1)

我修复了这个问题后,将它解决了一下 - 我真的没有词汇来解释我做了什么,但我想我会发布代码以防其他人后来遇到同样(简单)的问题。

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);
    }
});