R. *_* B. 3 javascript google-chrome google-chrome-extension
对于我的 Chrome 扩展程序,我需要pageAction仅在某个网站上显示该扩展程序。我曾经使用 来执行此操作declarativeContent,但 Firefox 不支持它,所以我必须手动执行此操作。这个问题的答案表明你可以简单地使用这样的东西:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if (changeInfo.status === "complete" && tab.url) {
if (tab.url.match(/google.com/)) {
chrome.pageAction.show(tabId);
}
}
});
Run Code Online (Sandbox Code Playgroud)
这对我来说不起作用,所以我修改了后台脚本中的代码,如下所示:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
console.log("Tab updated! Tab URL: " + tab.url);
});
Run Code Online (Sandbox Code Playgroud)
每次更新选项卡时,控制台只会打印Tab updated! Tab URL: undefined几次。我还尝试像这个问题的答案一样查询选项卡,这会产生相同的输出。
扩展的其他文件是:
清单.json:
{
"name": "Test",
"version": "1.0",
"description": "Test for StackOverflow",
"permissions": ["activeTab"],
"background": {
"scripts": ["background.js"]
},
"page_action": {
"default_popup": "popup.html"
},
"manifest_version": 2
}
Run Code Online (Sandbox Code Playgroud)
弹出.html:
<!DOCTYPE html>
<html>
<body>
This is a popup!
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
您缺少tabsmanifest.json 文件中的权限。有了此权限,选项卡的 URL 也应记录到控制台。
"permissions": ["activeTab", "tabs"] // <-- This
Run Code Online (Sandbox Code Playgroud)
清单.json:
{
"name": "Test",
"version": "1.0",
"description": "Test for StackOverflow",
"permissions": ["activeTab", "tabs"],
"background": {
"scripts": ["background.js"]
},
"page_action": {
"default_popup": "popup.html"
},
"manifest_version": 2
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1835 次 |
| 最近记录: |