在此扩展程序中,如果我点击扩展程序按钮,如果当前网址与http://example.com/*
或https://example.com/*
匹配,则应将其重定向到http://NewDomain/*
或https://NewDomain/*
这样的新域
但我希望此扩展名扫描选项卡URL并在以下条件下自动执行重定向:
如果创建了新标签页或
如果当前标签网址更改
这是我的代码:
的manifest.json
{
"manifest_version": 2,
"name": "My Extension",
"description": "Redirect example.com to NewDomain",
"version": "0.1",
"permissions":
[
"activeTab",
"tabs",
"background"
],
"browser_action":
{
"default_icon": "icon.png"
},
"content_scripts":
[
{
"matches": ["http://*/*", "https://*/*"],
"js": ["content.js"]
}
]
}
scripts.js中
var current_url = tab.url.split('/');
if(current_url[2] == "example.com")
{
current_url[2] = "NewDomain";
}
var new_url = current_url.join('/');
console.log('New tab url: ' + new_url);
document.location.href = new_url;
但它不起作用,我应该应用哪些更改?
答案 0 :(得分:0)
改为使用内容脚本并删除browser_action。
然后你可以使用document.location.href =“urlToRedirectTo”;
网址匹配可以在清单
中完成您有两种选择。在清单中指定要匹配的url或匹配每个url并检查内容脚本中的url。
例如,此清单将匹配所有网址:
{
"manifest_version": 2,
"name": "whatever",
"description": "blah",
"version": "1.0",
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["content.js"]
}
],
"permissions": [
"activeTab"
]
}
在content.js中,您可以执行以下操作:
if (document.location.href == "theUrlImLookingFor")
document.location.href = "theUrlThatIRedirectTo";