Chrome アプリ内でコンテンツからバックグラウンド スクリプトにメッセージを送信しようとしています。
// background.js
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
console.log(message)
sendResponse("hey man!");
});
// content.js
chrome.runtime.sendMessage("hello world!", function(response) {
console.log(response);
});
sendMessage
(上記のコードで説明したように)コールバックを指定してコンテンツを呼び出すと、次のエラーが発生します。
Port: Could not establish connection. Receiving end does not exist.
リスナーは起動されませんが、コールバックは (未定義の応答で) 起動されます。sendMessage 引数からコールバックを省略すると (メッセージのみが渡されるため)、リスナーは期待どおりに起動されます。
コールバック関数を動作させるように設定する方法がわかりません。誰?