javascript - 将选项卡重定向到我的页面的 Chrome 扩展

标签 javascript json google-chrome google-chrome-extension

我是 chrome 扩展的新手,在编写我的第一个 chrome 扩展时遇到了问题。我想做的是检测新标签操作并重定向到预定义的(我的网页)网址。

我写了 manifest.json 和 background.html 但它似乎不起作用。 我浏览了有关这些功能以及如何使用它们的谷歌论文,但一定有一些我遗漏的东西。

我不明白我在这里所做的很多事情,例如 manifest.json 中的内容脚本。

如果能帮助解决这个问题,我们将不胜感激。

编辑

Error

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 文件的源代码。 截屏: Output

为什么脚本没有被执行?

最佳答案

如果你想覆盖默认页面,你应该使用 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/

相关文章:

Javascript for loop var "i"被视为字符串?

c# - 将 JSON 字符串反序列化为 C# 复杂类对象

javascript - Chrome (58v) webdriverio 未运行,firefox 正在运行

html - 网站图标 (rel=icon) 未出现在 chrome for android 中

javascript - 计算javascript中数组元素的数量

javascript - 添加 jQuery 验证

javascript - Google Sheets - 用于计算忽略文本单元格的两行加权平均值的数组公式

json - 如何使用 MongoDB C++ 驱动程序将字符串转换为 BSON?

java - 从Hive连接到HDFS(JSON文件)

javascript - 单击没有 &lt;input&gt; 的表单按钮?