我正在开发一个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
在扩展清单中。