清单:
{
"manifest_version":2,
"name":"Optimize url",
"description":"Optimize url",
"page_action":{
"default_icon":{
"19":"url-icon16.png",
"38":"url-icon48.png"
},
"default_title":"Optimize url"
},
"background":{
"scripts":["background.js"]
},
"version":"0.1",
"permissions":[
"tabs",
"https://url.com/*"
]
}
背景JS:
function checkURL(){
var host = parseURL(tab.url).host;
if (host.indexOf("url.com") >= 0) {
chrome.pageAction.show(tabId);
}
}
chrome.tabs.onUpdated.addListener(checkURL);
然而,当我将它添加到正在开发的Extensions页面时。它不会出现在任何地方。我本来打算将它作为一个浏览器动作,但是它更多地将它用作页面动作,因为它只会集中在一个网站上。
任何人都可以向我解释我的错误吗?
答案 0 :(得分:2)
您的代码存在以下问题:
tab
中使用的变量checkURL
无法定义。
函数parseURL
也没有定义(它不是你想象的内置函数)。
最好过滤onUpdated
个status: 'complete'
事件,因为在单个标签更新期间会触发多个onUpdated
事件。
因此,请使用以下代码替换 background.js 代码:
var hostRegex = /^[^:]+:\/\/[^\/]*url.com/i;
function checkURL(tabId, info, tab) {
if (info.status === "complete") {
if (hostRegex.test(tab.url)) {
chrome.pageAction.show(tabId);
}
}
}
chrome.tabs.onUpdated.addListener(checkURL);