我是 chrome 扩展的新手,在编写我的第一个 chrome 扩展时遇到了问题。我想做的是检测新标签操作并重定向到预定义的(我的网页)网址。
我写了 manifest.json 和 background.html 但它似乎不起作用。 我浏览了有关这些功能以及如何使用它们的谷歌论文,但一定有一些我遗漏的东西。
我不明白我在这里所做的很多事情,例如 manifest.json 中的内容脚本。
如果能帮助解决这个问题,我们将不胜感激。
编辑
EDIT2 这是更新的代码 现在我没有 background.html 文件。 list .json
{
"name": "Tabber",
"manifest_version" : 2,
"version": "1.0",
"description": "MyExtension",
"background" : {
"scripts": ["code.js"]
},
"chrome_url_overrides": {
"newtab": "code.js"
},
"permissions": [
"tabs"
]
}
代码.js
<script>
chrome.browserAction.onClicked.addListener(function(tab){
var action_url = "www.xyz.com"
chrome.tabs.create({ url: action_url });
}
</script>
现在,当我打开一个新选项卡时,我可以看到显示的 .js 文件的源代码。 截屏:
为什么脚本没有被执行?
最佳答案
如果你想覆盖默认页面,你应该使用 html 文件,而不是 js 文件。 如果您只想覆盖一个页面,则不需要任何背景页面或内容脚本。 这是示例代码:
list .json:
{
"name": "Tabber",
"manifest_version" : 2,
"version": "1.0",
"description": "MyExtension",
"chrome_url_overrides": {
"newtab": "my.html"
},
"permissions": [
"tabs"
]
}
我的.html:
<!DOCTYPE html>
<html>
<head>
<title>over ride page</title>
<script type="text/javascript" src="code.js">
</script>
</head>
<body>
</body>
</html>
代码.js:
window.open("http://www.google.com", "_self");
注意:你不能在你的html文件中写任何js。您需要在 html 文件中包含 js 文件。
而且,您甚至不需要任何 js 文件。只需将 my.html 修改为:
<head>
<meta http-equiv="refresh"content="0;URL=http://www.google.com">
</head>
关于javascript - 将选项卡重定向到我的页面的 Chrome 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21656100/