在Chrome扩展程序中添加新页面时显示通知

时间:2014-02-18 08:35:42

标签: javascript google-chrome google-chrome-extension

我正在开发谷歌浏览器的扩展程序。我想在当前活动标签页中加载任何新页面时显示桌面通知。

但是我的书面代码工作不正常。

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo) {
  if (changeInfo.status === 'complete') {
    chrome.tabs.executeScript(tabId, {    
      chrome.notifications.create(‘id1’, {   
         type: ‘basic’,
         iconUrl: ‘icon.png’,
         title: ‘Review Baed Surfing’,
         message: ‘Check URL now by clicking FAKE URL icon infront on Address Bar!’,
         priority: 0
       },
       function() { /* Error checking goes here */}
     );        
    });
  }
});

2 个答案:

答案 0 :(得分:1)

我认为你只需要在后台脚本中调用chrome.notifications.create(),chrome.tabs.executeScript只接受文件url或代码(css,js)来注入。

当通知未按预期显示时,您可以检查以下项目:

  1. 向manifest.json中的权限添加“通知”。

    "permissions": ["notifications"]
    
  2. 通知API目前仅支持Windows,Chrome操作系统和Mac。

  3. create function的'option'参数必须包含通知标题,message和iconUrl。如果您错过了其中任何一个,那么丰富的通知将无法正常运行。

    var opt = {
        type: "basic",
        title: "Primary Title",
        message: "Primary message to display",
        iconUrl: "url_to_small_icon"
    }
    
  4. 希望这有用。

答案 1 :(得分:0)

[解决]

我在代码中进行了以下更改

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
 if (changeInfo.status == 'complete' && tab.active) {
    chrome.notifications.create('id1',{   
     type: 'basic',
     iconUrl: 'icon.png',
     title: 'Review Baed Surfing',
     message: 'Check URL now by clicking FAKE URL icon infront on Address Bar!',
     priority: 0
   },
   function() { /* Error checking goes here */}
   ); 
  }
});

现在它正常运作。

谢谢,