コンテンツスクリプトを使用してChromeでメッセージパッシングがどのように機能するかについて少し疑問があります。クロムのドキュメントに記載されているメッセージパッシングのデフォルトの例(http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/messaging/timer/ )を次のように変更しました。以下に見えるもの:
popup.html
function testRequest() {
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {counter: "getHTML"}, function handler(response) {
alert("Inside Client = "+response.counter2);
});
});
}
私のコンテンツスクリプトは次のようになります:
page.js
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
alert(request.counter);
alert("Inside server .. Req Counter = "+request.counter);
sendResponse({counter2: "5"});
});
popup.htmlからtestRequestを実行すると、コンテンツスクリプトが期待どおりに呼び出されます。宣言した両方のアラートをそれぞれの値で取得します。しかし、私のpopup.html応答コードは呼び出されていないようです..popup.html内にあるアラートはalert("Inside Client = "+response.counter2);
実行されていません。
一方、クライアント内にデバッグポイントがある場合、それは機能します!ちょっと奇妙な..誰かがこれがどのようにそしてなぜ起こっているのか教えてもらえますか?
前もって感謝します..