chrome扩展程序在新标签页中打开链接 - 没有错误,但在点击时不执行任何操作

use*_*515 3 google-chrome google-chrome-extension

我正在尝试创建一个非常简单的chrome扩展,以便在单击时在新选项卡中打开硬编码链接,并且我没有任何运气.添加扩展后,图标显示,但单击它时没有任何反应.有什么建议?

的manifest.json

{
"name": "Drive Button",
"version": "1.0",
"manifest_version": 2,
"description": "Open Google Drive",
"browser_action": {
"default_icon": "icon.png"
},
"background": "background.html",
"permissions": [
"tabs"
]
}
Run Code Online (Sandbox Code Playgroud)

background.html

<html>
<head>
<script>
// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.create({url: "http://drive.google.com"});
});
</script>
</head>
</html>
Run Code Online (Sandbox Code Playgroud)

Sud*_*han 10

您的脚本中存在一些问题

  • 清单注册
  • CSP

清单注册

你应该将背景注册为

"background": {
    "scripts": ["background.js"]
  },
Run Code Online (Sandbox Code Playgroud)

要么

"background": {
    "page": "background.html"
  },
Run Code Online (Sandbox Code Playgroud)

CSP

如果您希望将背景作为html页面消除<script>html页面中的标记以遵守内容安全策略.

在消除了这些问题后,我的脚本正在运行.

工作版

的manifest.json

注册后台页面到清单文件.

{
    "name": "Drive Button",
    "version": "1.0",
    "manifest_version": 2,
    "description": "Open Google Drive",
    "browser_action": {
        "default_icon": "icon.png"
    },
    "background": {
        "scripts": [
            "background.js"
        ]
    },
    "permissions": [
        "tabs"
    ]
}
Run Code Online (Sandbox Code Playgroud)

background.js

使用您的代码而不做任何修改.

chrome.browserAction.onClicked.addListener(function (tab) {
    chrome.tabs.create({
        url: "http://drive.google.com"
    });
});
Run Code Online (Sandbox Code Playgroud)

我能够按预期创建窗口.

参考