2012-05-01 10 views
2

私は、コンテキストメニューで楽しいことをするChromeブラウザ拡張機能を開発しようとしています。問題は、manifest.json content_scripts内にロードするJSファイルを取得できないということです。Chromeコンテンツスクリプトがロードされていません。

エラーを受け取らない場合、ファイルは単にロードされません。

スクリプトはうまくいきます。私はそれらを私のバックグラウンドページに入れれば、そのバックグラウンドページを使ってうまくいきます。その欠点は、それがバックグラウンドページだけに限定されていることです。

{ 
"name": "Mini", 
"description": "Mini",  
"permissions": ["contextMenus","management","contentSettings","tabs","http://*/*","https://*/*","editable"], 
"version": "0.1", 
"manifest_version": 1, 
"background_page": "mini.html", 
"icons" : {"16" : "mini.png"}, 
"contexts" : ["link","tab","page"], 
"content_scripts": [{"matches":["<all_urls>"],"js":["jquery172min.js","mini.js"]}] 
} 

は私が"http://\*/\*", "https://\*/\*", "\*://\*/\*"

私が試した空白なしの空白を含めマッチのすべての形態を、試してみました。私はここに空白を描いています。

ご協力いただければ幸いです。

$(document).ready(function() { 

alert("page is ready"); 
},true);  

私のお詫び申し上げます。これは、拡張機能がロードされているかどうかをテストするために使用しているjavascript/Jqueryのコピーです。それは単純な警告です。

答えて

2

Content scriptsは、chrome.contextMenus APIを使用できません(実際にはsome of the chrome.extension methodsのみ使用できます)。

match patternschrome.contextMenus.create({title: 'Test', documentUrlPatterns: 'http://*/*'});を介して個々のメニュー項目に適用することができます。
作成したメニュー項目を変更して(chrome.contextMenus.update)、削除することもできます(chrome.contextMenus.remove)。

コンテンツスクリプトとバックグラウンドページとの間の通信については、Message passingを参照してください。

+0

ありがとうございます! 今問題は、その部分をテストすることさえできないということです。ページロードにトリガーする(jqueryを使用して)トリガーしない単純なアラートを置く必要があります。開発者パネルを見ると、その拡張機能用のスクリプトは読み込まれません。 –

+0

どの開発ツールですか?コンテンツスクリプトは表示されず、バックグラウンドページの開発ツールから**間接的にしか**アクセスできません。コンテンツスクリプトの 'console.log'メッセージは、アクティブなページに表示されます。 –

+0

さて、Chromeに付属している開発ツールについてお話しました。だから、私はそれが読み込まれているとは思わないでしょう。しかし、私は警告のトリガを見ないはずですか?私はconsole.logを調べます。私はそのことについて知らなかった。ありがとう –