1. ホーム
  2. javascript

[解決済み] Chromeの拡張機能です。新しいタブでリンクを開くには?

2023-03-29 14:36:19

質問

私のStackoverflowフォルダには stackoverflow.ico と下記2つのファイルがあります。Chromeにインポートすると、アドレスバーにアイコンが表示されますが、クリックしても新しいタブが開きません。私は何を間違えているのでしょうか?

manifest.json

{
  "name": "Stackoverflow",
  "version": "1",
  "browser_action":
  {
    "default_icon": "stackoverflow.ico"
  },
  "background":
  {
    "page": "index.html"
  },
  "permissions": ["tabs"],
  "manifest_version": 2
}

index.html

<html>
  <head>
    <script>
      chrome.browserAction.onClicked.addListener(function(activeTab)
      {
        var newURL = "http://stackoverflow.com/";
        chrome.tabs.create({ url: newURL });
      });
    </script>
  </head>
</html>

どのように解決するのですか?

問題は、あなたが違反することです。 マニフェスト バージョン 2 の content security policy . この問題を解決するには、インライン スクリプト (この場合は背景) を削除します。 page . これを背景 script のようにします。

manifest.json

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

背景.js

chrome.browserAction.onClicked.addListener(function(activeTab){
  var newURL = "http://stackoverflow.com/";
  chrome.tabs.create({ url: newURL });
});

もし、何らかの理由でページであることが必要な場合は、単にスクリプトを外部ファイルとしてインクルードし、以前のようにページとして宣言してください。