我认为这是一个经常被问到的问题,但我找不到答案。 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
}
}
答案 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
}
}
})
还在清单中添加标签权限。