7

次のような単純なプラグインがあります。

chrome.extension.onMessage.addListener(function(msg, _, sendResponse) {
    log("Got message from background page: " + msg);
});

残念ながら、パネルが読み込まれると、次のエラーが表示されます。

TypeError: Cannot call method 'addListener' of undefined

chrome.extension.onMessage私のテストによると、undefined

このページhttp://code.google.com/chrome/extensions/messaging.htmlによると、自分のページからこの chrome API にアクセスできるはずなので、ここで見逃している小さなものでなければなりません...

4

3 に答える 3

3

chrome.extension.onRequestメソッドとchrome.extension.sendRequestは、この回答で最初に提案されたように、Chrome33では非推奨になっていることに注意してください。


あなたは使用する必要があります

chrome.extension.onRequest

それ以外の

chrome.extension.onMessage

また、バックグラウンドページまたはその他の拡張スクリプト:

chrome.tabs.sendRequest

それ以外の

chrome.tabs.sendMessage

(ドキュメントは古くなっています...グーグルチームに警告してください;))

于 2012-06-29T15:07:32.933 に答える
0

補足: Yandex ブラウザー (主にロシア人向け) も Chromium に基づいています (2012 年 11 月 10 日現在、ver. 1.0) には、.*Message の代わりに .*Request メソッドがあります。ヒントをくれた Ciprian Amariei に感謝します。おかげで多くの時間を節約できました。

PS: これは実際には Ciprian Amariei の回答に対するコメントである必要がありますが、残念ながらまだコメントを残すことはできません。この情報は、Yandex ブラウザーの拡張機能を開発する人にとって非常に役立つかもしれません。

于 2012-10-11T08:12:46.710 に答える
0

最新の Google Chrome バージョンを使用していることを確認してください。古いバージョンには chrome.extension.onMessage API がありません。

于 2013-01-21T08:05:20.700 に答える