background.js
次のスニペットがあります。
chrome.browserAction.onClicked.addListener(toggleStatus);
ここtoggleStatus
で、何かが起こったというメッセージをコンテンツ スクリプトに送信したいと思います。それは可能ですか?
それとも、私は完全にポイントを逃していますか、これは正しい方法ですか?
この背後にあるのは、ページをリロードする必要なく、拡張機能をアクティブ化/非アクティブ化したいということです。
background.js
次のスニペットがあります。
chrome.browserAction.onClicked.addListener(toggleStatus);
ここtoggleStatus
で、何かが起こったというメッセージをコンテンツ スクリプトに送信したいと思います。それは可能ですか?
それとも、私は完全にポイントを逃していますか、これは正しい方法ですか?
この背後にあるのは、ページをリロードする必要なく、拡張機能をアクティブ化/非アクティブ化したいということです。
試行錯誤の末、ようやく満足できる解決策を見つけました。
まず、イベント リスナーをコンテンツ スクリプトに追加します。
var extensionPort = chrome.extension.connect();
extensionPort.onMessage(function(msg) {
// handle the received message
});
拡張機能の接続されたすべてのポートにメッセージを送信するには、これを に追加しますbackground.js
。
chrome.extension.onConnect.addListener(function(port) {
port.postMessage({ someMessage: 'take me to the foobar' });
});