3

クロム拡張開発チュートリアルで述べたように、manifest.jsonファイルに jQuery を含めて、次のようにコンテンツ スクリプトで使用できます。

"content_scripts": [
    {
      "matches": ["http://www.google.com/*"],
      "css": ["mystyles.css"],
      "js": ["jquery.js", "myscript.js"]
    }
  ],


私はそれをしました。しかし、JavaScript コンソールを開いて拡張機能のブラウザ アクション アイコンをクリックすると、「Uncaught ReferenceError: $ is not defined」というエラーが表示されます。

どうすればいいの!? 何が悪いのか理解できません。


もともと回答として投稿されたOPからの更新:

リクエストに応じて、完全なマニフェストとコンテンツ スクリプトのサンプルを以下に示します。マニフェスト.json:

"name": "My Extension",
"version": "1.0",
"manifest_version": 2,

"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html",
"default_title": "My Extension"
},

"background": {"page": "background.html"},
"content_scripts": [{
"matches": ["http://*/*","https://*/*"],
"js": ["jquery-1.8.3.js","content.js"]
}],

"permissions": ["tabs", "http://*/*", "https://*/*"]


コンテンツ スクリプト スニペット:

var message = $('body').width();
chrome.extension.sendMessage (message);


rsanchezの答えについて。詳しく説明してみます。よく知られているように、2 つの JavaScript コンソールを開くことができます。1 つ目は拡張機能の popup.html に関連付けられ、2 つ目は現在開いている Web ページに関連付けられています。コンテンツスクリプトとpopup.htmlに含まれるスクリプトに次のコードスニペット(たとえば)があります

var = bodyWidth$('body').width(); 
console.log(bodyWidth);

現在開いている Web ページに関連付けられたコンソールを開くと上記のエラーが表示されますが、拡張機能の popup.html に関連付けられた js コンソールを開くと、本体の幅がコンソールに表示されます。つまり、popup.html に含まれるスクリプトは jQuery ライブラリを参照し、コンテンツ スクリプトは参照しません。

4

3 に答える 3

3

Google Chromeは、マニフェストから/マニフェスト内の外部jquery.jsファイルをサポートしていません。jqueryをダウンロードして、拡張フォルダーに配置
する必要があります。次に、それをに追加できます。manifest.json

于 2013-01-09T22:22:30.297 に答える
2

に含まれるスクリプトでjQueryを使用する場合は、スクリプトの前popup.htmlに含める必要があります。jquery.jspopup.html

于 2013-01-10T16:41:59.513 に答える