在我的 Stackoverflow 文件夹中,我有 stackoverflow.ico
和 2 个文件。将其导入 Chrome 时,它会在地址栏中显示图标,但是当我单击它时,Chrome 不会打开任何新标签。我做错了什么?
list .json
{
"name": "Stackoverflow",
"version": "1",
"browser_action":
{
"default_icon": "stackoverflow.ico"
},
"background":
{
"page": "index.html"
},
"permissions": ["tabs"],
"manifest_version": 2
}
index.html
<html>
<head>
<script>
chrome.browserAction.onClicked.addListener(function(activeTab)
{
var newURL = "http://stackoverflow.com/";
chrome.tabs.create({ url: newURL });
});
</script>
</head>
</html>
最佳答案
问题是你违反了manifest version 2's content security policy
.要修复它,您所要做的就是摆脱内联脚本,在本例中是您的背景 page
。把它变成这样的后台脚本
:
list .json
"background":{
"scripts": ["background.js"]
},
background.js
chrome.browserAction.onClicked.addListener(function(activeTab){
var newURL = "http://stackoverflow.com/";
chrome.tabs.create({ url: newURL });
});
如果出于某种原因,您确实需要它成为一个页面,那么只需将脚本作为一个外部文件包含进来,并像以前一样将其声明为一个页面。
关于javascript - Chrome 扩展 : How to open a link in new tab?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16503879/