html实现发送消息,关于在bg.html、popup.html和contentscript.js之间发送消息

onRequest.addListener和sendRequest是chrome的扩展消息传递的一部分。哪个在这里

http://developer.chrome.com/extensions/messaging.html

基本上,您使用某人从触发“sendRequest”发送的“onRequest.addListener”来侦听请求。

在你的情况下,你把

onRequest.addListener

“在内容脚本中侦听来自弹出窗口的请求(使用

sendRequest

)从内容脚本中,您可以将响应返回到弹出窗口以处理正在发生的事情。在弹出窗口中,您可以使用

chrome.extension.getBackgroundPage()

.

如果您希望内容脚本也与背景页通信(这是因为您的内容变得更复杂而不需要的),您可以向背景页添加“onrequest.addListener”,它只侦听来自内容脚本的请求。要做到这一点,

Message Passing

完美地解释了这一点。”如果为真,则为内容脚本。

下面的示例(未测试)显示了我对消息传递的意思。记住,尽量保持简单,而不是复杂。

例子

Popuff.HTML

chrome.tabs.getSelected(null, function(tab) {

chrome.tabs.sendRequest(tab.id, {method: "fromPopup", tabid: tab.id}, function(response) {

console.log(response.data);

});

});

内容脚本.js

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {

if (request.method == "fromPopup") {

// Send JSON data back to Popup.

sendResponse({data: "from Content Script to Popup"});

// Send JSON data to background page.

chrome.extension.sendRequest({method: "fromContentScript"}, function(response) {

console.log(response.data);

});

} else {

sendResponse({}); // snub them.

}

});

背景页.html

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {

// From content script.

if (sender.tab) {

if (request.method == "fromContentScript")

sendResponse({data: "Response from Background Page"});

else

sendResponse({}); // snub them.

}

});

你可能感兴趣的:(html实现发送消息)