Chrome扩展程序将标签重定向到我的页面

Pri*_*ata 3 javascript json google-chrome google-chrome-extension

我是chrome扩展程序的新手,我在编写第一个chrome扩展程序时遇到了麻烦.我要做的是检测新的标签操作并重定向到预定义的(我的网页)网址.

我写了manifest.json和background.html,但它似乎不起作用.我浏览了关于功能以及如何使用它们的谷歌论文,但必须有一些我错过的东西.

我不太了解我在这里做过的一些事情,例如manifest.json中的内容脚本.

一些帮助解决这个问题将不胜感激.

编辑

错误

EDIT2 这是更新的代码现在我没有background.html文件.的manifest.json

{
  "name": "Tabber",
  "manifest_version" : 2,
  "version": "1.0",
  "description": "MyExtension",
  "background" : {
    "scripts": ["code.js"]
  },
  "chrome_url_overrides": {
      "newtab": "code.js"
   },
  "permissions": [
    "tabs"
  ]
}
Run Code Online (Sandbox Code Playgroud)

code.js

<script>
    chrome.browserAction.onClicked.addListener(function(tab){
            var action_url = "www.xyz.com"
            chrome.tabs.create({ url: action_url });
    }
</script>
Run Code Online (Sandbox Code Playgroud)

现在当我打开一个新选项卡时,我会看到显示的.js文件的来源.截图: 产量

为什么脚本没有被执行?

Han*_*k X 9

如果你想超越默认页面,你应该使用html文件,而不是js文件.如果您只想过度翻页,则不需要任何后台页面或内容脚本.以下是示例代码:

menifest.json:

{
    "name": "Tabber",
    "manifest_version" : 2,
    "version": "1.0",
    "description": "MyExtension",
    "chrome_url_overrides": {
        "newtab": "my.html"
    },
    "permissions": [
        "tabs"
    ]
}
Run Code Online (Sandbox Code Playgroud)

my.html:

<!DOCTYPE html>
<html>
<head>
    <title>over ride page</title>   
    <script type="text/javascript" src="code.js">
    </script>
</head>
<body>    
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

code.js:

window.open("http://www.google.com", "_self");
Run Code Online (Sandbox Code Playgroud)

注意:你不能在你的html文件中写任何js.您需要在html文件中包含js文件.

而且,您甚至不需要任何js文件.只需将my.html修改为:

<head>
    <meta http-equiv="refresh"content="0;URL=http://www.google.com">
</head>
Run Code Online (Sandbox Code Playgroud)