2013-07-08 25 views
16

Chrome拡張機能を使いこなした後、chrome://extensionsページにあるときに、マニフェストファイルで開始された背景スクリプトが、インターネットをブラウズしているかのように、または他のページバックグラウンドスクリプトが実行されない拡張ページ。 background.jsファイルにGoogle Chrome拡張機能 - 背景スクリプト

"background": { 
    "scripts": ["jquery-latest.js","background.js"] 
    }, 

今:

$(document).ready(function(){ 
    alert("working"); 
}); 

私はどうかを確認するために、単純なアラート機能を使用するここで

は私が何を意味するかです:

私のマニフェストファイルでこれは動作し、が表示されるのは、私がchrome://extensionにいるときに表示されることがわかりますオーリー。 google.comやその種のものに行っても、葉巻はありません。

私の質問には、なぜこれが起こりますか?何があっても警告を出すように変更するにはどうしたらいいですか?

+2

上記の動作を再現できませんでした。私は、拡張機能をインストールするか、閉じた状態からブラウザを再起動すると、バックグラウンドスクリプトが一度だけ実行されるのを見ています。私は 'chrome:// extensions'のページを見ているかどうかは分かりませんが(これは拡張機能をインストールするためには必要ですが、何を振る舞うかはわかりません)。 – apsillers

+1

@apsillers 'chrome:// extensions /'ページ(Ctrl + RまたはF5)を更新すると、すべての拡張機能が再読み込みされます。それはおそらくOPが彼が記述した行動を観察している理由です。 –

+3

@RobWああ、そうですね、ページをリフレッシュするとその動作が再現されています。また、これは非常に便利なデバッグのショートカットのようです。ありがとう! – apsillers

答えて

25

background scriptは、「Chromeブラウザのバックグラウンドで実行中」と表示する必要があります。
あなたが望む効果(ページごとにスクリプトを実行する)は、実際にはcontent scriptsのタスクです。

詳しくはhttps://developer.chrome.com/extensions/overview.html#archをご覧ください。

+0

バックグラウンドスクリプトではなく、コンテンツスクリプトに切り替えますか? –

+0

@DavidBiga正確に。 –

+0

私はまだ問題を抱えています。「content_scripts」:[ { "js":["jquery-latest.js"、 "background.js"] } ]マッチとCSSを提供する必要がありますか? –

2

あなたは...少しmanifest.jsonをを変更することで、代わりにイベントページを使用して背景ページを使用しているので、それが てみこれを追加...である:イベントページの詳細については

"background": { 
    "scripts": ["jquery-latest.js","background.js"], 
    "persistent": false 
    }, 

は、この点を確認してください。 https://developer.chrome.com/extensions/event_pages

1

chrome://extensionsをロードするたびに拡張機能が強制的にリロードされるため、CTRL + Rを使用して同じ動作を再現できるため、効果が生成されます。毎回、バックグラウンドページが新しくリロードされてしまい、他のページの場合には発生しません。

関連する問題