3

クリックすると新しいタブでハードコーディングされたリンクを開くための非常に単純なクロム拡張機能を作成しようとしていますが、うまくいきません。拡張機能を追加するとアイコンが表示されますが、クリックしても何も起こりません。助言がありますか?

マニフェスト.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"
]
}

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>
4

1 に答える 1

10

スクリプトにいくつかの問題があります

  • マニフェスト登録
  • CSP

マニフェスト登録

背景を次のように登録する必要があります

"background": {
    "scripts": ["background.js"]
  },

また

"background": {
    "page": "background.html"
  },

CSP

ページとしての背景を探している場合は、コンテンツセキュリティポリシーに準拠するためにhtmlページのタグをhtml削除してください。<script>

これらの問題を解消した後、スクリプトを実行しました。

作業バージョン

マニフェスト.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"
    ]
}

background.js

コードを変更せずに使用しました。

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

期待通りにウィンドウを作成できました。

参考文献

于 2013-01-10T06:04:48.357 に答える