0

現在のタブの URL を拡張機能に送信したいだけです。

以下は私のmanifest.jsonです

{
 "name": "DocUrlExtention",
 "version": "1.0",
 "manifest_version": 2,
 "description": "The first extension that I made.",
 "browser_action": {
 "default_icon": "icon.png",
 "default_popup": "popup.html"
},
 "content_scripts": [
 {
  "matches": ["http://*/*"],
  "js": ["contentscript.js"]
 }
 ]}

以下は私のcontentscript.jsです

chrome.extension.sendRequest({url: window.location.href}, function(response) {
   console.log(response.farewell);
});

以下は私のpopup.htmlです

<!doctype html>
<html>
<head>
<title>Getting Started Extension's Popup</title>

<script>
    chrome.extension.onRequest.addListener(
      function(request, sender, sendResponse) {
        console.log(sender.tab ?
                    "from a content script:" + sender.tab.url :
                    "from the extension");
      });
</script>

<!-- JavaScript and HTML must be in separate files for security. -->
<!--<script src="popup.js"></script>-->
</head>
<body>
<div id="mydiv">Doc Id:</div>
</body>
</html>

コンソールに何も表示されません。Chrome拡張機能は初めてです。

4

1 に答える 1

1

マニフェスト ファイルには、コンテンツ セキュリティ ポリシー"manifest_version": 2,を有効にする が含まれています。デフォルトでは、インライン JavaScript は実行されません。また、インライン JavaScript が許可されるように CSP を緩和する方法はありません

次の 2 つのオプションがあります。

  1. 削除"manifest_version": 2します (デフォルトの CSP を無効にします)。
  2. インライン JavaScript を外部ファイルに移動します。

2番目の方法が推奨され、コードでも提案されています...

...
<!--セキュリティのため、JavaScript と HTML は別のファイルにする必要があります。-->
<!-- <script src="popup.js"></script> -->
</head>
...

PS。ポップアップの開発ツールを開くには、ブラウザー アクション アイコンを右クリックし、最後のオプション [ポップアップの検査] を選択します。

于 2012-05-02T16:20:32.487 に答える