浏览器操作仅在" content_script"上激活火柴

时间:2017-02-09 22:50:12

标签: google-chrome-extension

我认为这是一个经常被问到的问题,但我找不到答案。 Chrome扩展程序是否有办法让它的浏览器操作弹出窗口仅在匹配页面的content_scripts上可用?

例如:我为网站进行了扩展。我希望弹出窗口仅在浏览网站时可用(在当前选项卡上)。我该怎么办?

对我来说,默认情况下,浏览器操作始终处于启用状态,无论我浏览的页面是什么,还是从未启用过页面操作。

感谢您的帮助

编辑:这是清单的一部分,我用pageAction更改但没有成功。我希望我的图标仅在浏览LDLC的标签上激活。

{
  "content_scripts": [ 
    {
        "js": [ "jquery.min.js", "scrooge.js" ],
        "matches": [ "*://www.ldlc.com/fiche/*", "*://ldlc.com/fiche/*" ]
      }],

   "manifest_version": 2,

   "permissions": [ "storage", "activeTab","*://ldlc.com/*", "*://scroogealpha.esy.es/*" ],

   "page_action": {
          "default_title": "Worth buying?",      // optional; shown in tooltip
          "default_popup": "popup.html"        // optional
    },

   "web_accessible_resources": [ 
    ],
   "background":{
    "scripts" : ["eventPage.js"],
    "persistent": false
   }
}

1 个答案:

答案 0 :(得分:1)

使用页面操作并在后台脚本中侦听选项卡更改。当标签页更改时,请检查是否要显示页面操作。

在后台脚本中执行以下操作:

let matches = ["://www.ldlc.com/fiche/", "://ldlc.com/fiche/" ]
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
    for (let i in matches) {
        if (tab.url.includes(matches[i])) {
            chrome.pageAction.show(tabId)
            break
        }
    }
})

还在清单中添加标签权限。