0

background.js次のスニペットがあります。

chrome.browserAction.onClicked.addListener(toggleStatus);

ここtoggleStatusで、何かが起こったというメッセージをコンテンツ スクリプトに送信したいと思います。それは可能ですか?

それとも、私は完全にポイントを逃していますか、これは正しい方法ですか?

この背後にあるのは、ページをリロードする必要なく、拡張機能をアクティブ化/非アクティブ化したいということです。

4

1 に答える 1

0

試行錯誤の末、ようやく満足できる解決策を見つけました

まず、イベント リスナーをコンテンツ スクリプトに追加します。

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' });
});
于 2012-09-18T17:59:35.823 に答える