2017-01-29 20 views
0

初めてのクロム拡張機能を作成していて、ポップアップウィンドウでjQueryを使用して問題が発生しました。ポップアップを調べると、Uncaught ReferenceError: $ is not definedというエラーが表示されますが、manifest.jsonにjQueryのローカルコピーが含まれています。私はpopup.js内のconsole.logにアクセスできますが、jQueryライブラリは明らかに読み込まれません。

manifest.jsonを

{ 
    "manifest_version":2, 
    "name":"extension", 
    "version":"0.1", 
    "content_scripts":[ 
     { 
      "matches": [ 
       "<all_urls>" 
      ], 
      "js":["jquery-3.1.1.min.js","content.js","popup.js"] 
     }], 
    "browser_action":{ 
       "default_icon":"icon.png", 
       "default_popup":"popup.html" 
      } 
     , 
    "background":{ 
     "scripts":["background.js"] 
    }  

} 

popup.html

<!DOCTYPE html> 
<script src="popup.js"></script> 
<div> 
Search RT for Movie: <input type="text" value=""><input type="submit" id="bleh"> 
</div> 

popup.js

$(document).ready(function(){ 
    function d(c){ 
     console.log(c) 
    } 
    d('hi') 
    $('#bleh').click(function(){d('bi')}) 
}) 
+1

あなたが実際にあなたのページにjQueryのをロードする必要があります。 – SLaks

+0

popup.jsにjQueryをロードしようとしましたが、同じエラーが発生しました – st4rgut

+1

ポップアップとコンテンツスクリプトの両方に* popup.js *をロードしています。これは通常、Bad Idea™です。スクリプトは、両方の状況にあるように具体的に書かれていない限り、どちらか一方にしかなければなりません。 – Makyen

答えて

2

あなたをアドバイスしてください - 私は関連の質問を検索するが、問題を特定することができませんでしたポップアップにjQueryをロードする必要があります。あなたはそれのため<script>のタグを追加することによって、そうすることができます。

popup.html

<!DOCTYPE html> 
<script src="jquery-3.1.1.min.js"></script> 
<script src="popup.js"></scrip> 
<div> 
    Search RT for Movie: <input type="text" value=""><input type="submit" id="bleh"> 
</div> 
+0

ありがとう、私はあなたの提案を使用して動作させることができました。しかし、ポップアップの 'inspect Element'開発者ウィンドウではconsole.logだけになります。通常の開発者ウィンドウは 'hi'のみ記録しました。なぜなのかご存知ですか? – st4rgut

+0

[複数の異なるコンソール](http://stackoverflow.com/a/38920982/3773011)があります。 'console.log()'への特定の呼び出しのために使用されるのは、 'console.log()'がどのスコープとコンテキストで実行されたかによって異なります。私はあなたが何が起こったのか正確にはわかりません。あなたが参照しているDevToolsを明示してください。たとえば、どのDevToolsが「通常の開発者ウィンドウ」ですか? – Makyen

+0

私はブラウザコンソールを意味しました。以前の記事をコンソールで読みました。 – st4rgut

関連する問題