初めてのクロム拡張機能を作成していて、ポップアップウィンドウで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')})
})
あなたが実際にあなたのページにjQueryのをロードする必要があります。 – SLaks
popup.jsにjQueryをロードしようとしましたが、同じエラーが発生しました – st4rgut
ポップアップとコンテンツスクリプトの両方に* popup.js *をロードしています。これは通常、Bad Idea™です。スクリプトは、両方の状況にあるように具体的に書かれていない限り、どちらか一方にしかなければなりません。 – Makyen