2017-11-13 11 views
0

私は、コンテンツスクリプトとバックグラウンドページの間で通信するはずのクロム拡張子を持つこの奇妙なバグを持っています。それはしばらくの間働くようですが、突然それは動作を停止します。それを再び機能させる唯一の方法は、拡張機能をアンインストールして再インストールすることです。これはクロームストアのバージョンとローカルの開発者バージョンの両方に発生します。 (開発者向けバージョンをリロードない問題が解決しない。)しばらくするとChrome拡張機能が機能しなくなります。レスポンスが定義されていません

関連する部分がある:私はコンテンツスクリプトが実際に関連ページに注入されていることページを検査から見

chrome.pageAction.onClicked.addListener(function (tab) { 
    chrome.tabs.sendMessage(tab.id, {greeting: "hello"}, function(response) { 
     //response is undefined at this point 
    }); 
}); 

が、リスナー内のコードは実行されません:

chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { 
    //never runs this code 
}); 

あなたはここにインストールされたバージョンを見つけることができます。https://chrome.google.com/webstore/detail/hi-res-cover-art-grabber/oiagpaldkopdbolnebgjlmihmejjkaji そして、ここで完全なソースコード:を

+0

コンテンツスクリプトがヘルプに挿入されている_page_を再読み込みしますか?これはどのくらいの頻度で起こりますか?ソースコードを見ることなく、コンテンツスクリプトはどのように注入されますか? – Xan

+0

リロードは役に立ちません。しかし、私はアンインストール/インストール後にリロードする必要があります。私はちょうど私が私のブラウザを閉じるたびに壊れているように思った。エラーはおそらく初期化中ですか? https://github.com/MrMamen/CoverGrabber/blob/master/chrome/background.js – MrMamen

答えて

1

background.jsのJavaScriptはすべて、インストール時と更新時にのみ呼び出されるchrome.runtime.onInstalled.addListenerイベントにあります。したがって、ブラウザを開いたときに呼び出されることはありません。

これ以外のイベントを登録することを忘れないでください。そうしないと、拡張機能をアンインストールして再インストールするときにのみイベントが登録されます。

関連する問題