问题描述
我想从随机网页的控制台向我的 chrome 扩展程序发送消息.chrome.extension.sendMessage 似乎不起作用.
I want to send message from the console of the random web page to my chrome extension.chrome.extension.sendMessage doesn't seem to work.
推荐答案
根据 官方文档 你应该使用postMessage
在发件人和 message
接收器中的事件监听器.
According to the official docs you should use postMessage
in the sender and message
event listener in the receiver.
这是一个例子:
您网站的 page.html
var data = { type: "FROM_PAGE", text: "Hello from the webpage!" };
window.postMessage(data, "*");
内容脚本:(使用 chrome.tabs.executeScript(tabid, {code:...
) 注入)
window.addEventListener("message", function(event) {
// We only accept messages from ourselves
if (event.source != window)
return;
if (event.data.type && (event.data.type == "FROM_PAGE")) {
console.log("Content script received message: " + event.data.text);
}
});
此处page.html
(不是扩展的一部分)向自身发布消息,这些消息被内容脚本拦截和检查.可以通过类似的方式进行相反的操作.
Here page.html
(which is not a part of the extension) posts messages to itself, which are intercepted and inspected by the content script. The reverse is possible through similar means.
要从内容脚本传递到扩展程序,您必须使用 其中一个可用消息-传球技巧.
To pass from content script to extension, you will have to use one of the available message-passing techniques.
看起来很复杂,也有点复杂,但所有这些笨蛋都是非常安全的.
It looks complicated and it is somewhat complicated but all this mumbo-jumbo is very secure.
这篇关于从网页向 chrome 扩展程序发送消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!