对使用内容脚本在 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);
没有被执行。
另一方面,如果我在客户端中有一个调试点,它就可以工作!有点奇怪..有人可以告诉我这是怎么发生的以及为什么会发生吗?
先感谢您..