0

重複の可能性:
Chrome 拡張機能をマニフェスト v1 から v2 に変更する際のポート エラー

私のウェブサイト用のアドオンを開発しようとしています。ユーザーは、任意の Web ページのハイパーリンクを右クリックしてから、Chrome コンテキスト メニューのリンクをクリックして Web サイトに移動し、アクションを実行できる必要があります。

アドオンは完成しましたが、テストしようとするたびに、ハイパーリンクを再クリックしても Chrome のコンテキスト メニューにリンクが表示されません。

ここに私のファイルがあります:

マニフェスト ジェイソン

{
"manifest_version": 2,
"background_page": "background.html",
"description": "Decrypt Short URLs.",
"icons": {
  "128": "icon-128.png",
  "16": "icon-16.png",
  "48": "icon-48.png"
 },
"minimum_chrome_version": "8.0.0.0",
"name": "xxxx.xxx",
"permissions": [ "http://*/*", "https://*/*", "tabs", "contextMenus" ],
"version": "1.0"
}    

background.html

<!DOCTYPE html>

<html>
<head>

</head>
<body>
<script>


  function handleClick() {
    return function(info, tab) {

      var url = 'http://xxx.xxx/api.php?url=' + info.linkUrl +    '&source=chromeextension'

      // Create a new tab to the results page
      chrome.tabs.create({ url: url, selected:true  });
    };
  };

  chrome.contextMenus.create({
    "title" : "Decrypt this Link",
    "type" : "normal",
    "contexts" : ["link"],
    "onclick" : handleClick()
  });
 </script>
</body>

どんな助けにも感謝します。

4

1 に答える 1

1

問題はマニフェストファイルにあると思います。マニフェストバージョン2を使用しますが、バックグラウンドページはマニフェストバージョン1と同様に宣言されます。

あなたはmanifest.jsonのこの部分を変更しようとするべきです:

"background_page": "background.html",

これについて:

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

すべてのバックグラウンドコードをbackground.jsに配置します

あなたがここで読むことができるより多くの情報:background_pages

PS申し訳ありませんが、ロブW氏は、メインの質問へのコメントでこの問題をすでに指摘しています。

于 2012-09-03T07:03:23.093 に答える