从网页向 chrome 扩展程序发送消息 [英] sending message to chrome extension from a web page

查看:39
本文介绍了从网页向 chrome 扩展程序发送消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从随机网页的控制台向我的 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 扩展程序发送消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆