如何在特定网站上显示pageaction图标?

时间:2014-03-17 21:10:41

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

以下是我的manifest.json,以供参考。

{
  "manifest_version": 2,

 "name": "Results app",   "description": "This extension helps
 calculate your total and percentage.",   "version": "1.0",

"permissions": ["http://www.example.com/*"],

 "page_action": {
      "default_icon": {                   
        "19": "icon.jpg"

      },
      "default_title": "",     
      "default_popup": "popup.html"      
    },

 "content_scripts": [
  {
    "matches": ["http://www.example.com/*"],
    "js": ["contentscript.js"]
  }
 ]
} 

如何在网站上显示符合manifest.json中给出的条件的pageaction图标。

我试过了this,但没有用。

一般来说,现在如何才能显示pageaction图标?

调试后台页面:我收到此错误 Debugging background page

1 个答案:

答案 0 :(得分:1)

显示页面操作按钮的最佳方式(自Chromium 33以来)是通过chrome.declarativeContent API:

例如,要显示example.com及其子域的页面操作,可以使用以下代码:

chrome.runtime.onInstalled.addListener(function() {
    chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
        chrome.declarativeContent.onPageChanged.addRules([{
            conditions: [
                new chrome.declarativeContent.PageStateMatcher({
                    pageUrl: {
                        hostSuffix: 'example.com'
                    }
                })
            ],
            actions: [new chrome.declarativeContent.ShowPageAction()]
        }]);
    });
});

不要忘记将declarativeContent*://*.example.com/权限添加到您的清单文件中。

有关更多匹配网址的方法,请参阅UrlFilter type的文档;有关使用详情,请参阅chrome.declarativeContent