Chrome扩展:通过服务器上的JavaScript将请求发送到后台页面


Chrome Extension: Send request to background page via a JavaScript on server

我正在开发一个chrome扩展,它一加载就会在特定网页中注入iframe。iframe加载一个托管在localhost上的表单(form.php)。表单上输入的所有信息都由本地主机上的script.js处理。PHP文件有:

<script src="script.js" type="text/javascript"></script>

php文件上有一个提交按钮。当它被点击时,我想把一条消息和一些数据传递到扩展的后台页面,比如:

chrome.extension.sendRequest({'name':'email', value:email});

但我得到一个错误说:

未捕获的类型错误:无法调用未定义的方法"sendRequest"

我想要的是,一旦点击提交按钮,所有处理的数据都会发送到chrome扩展后台页面。

请给我建议什么方法可以帮我做到这一点?

如果我理解得对,您希望从Iframe向chrome扩展后台页面发送一条消息。

一种方法是在网页中注入一个内容脚本,并让它侦听消息

window.addEventListener('message',….)

在Iframe上,当数据准备好时,您可以调用

parent.postMessage

以向父级中的内容脚本发送消息。内容脚本可以使用将消息转发到bg

chrome.extension.send请求

另一种方法是通过设置将内容脚本注入Iframe本身

all_frames:true

在扩展清单中。