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

时间:2012-07-28 06:47:52

标签: php javascript jquery google-chrome google-chrome-extension

我正在开发一个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});

但我收到错误说:

  

未捕获的TypeError:无法调用未定义的方法'sendRequest'

我想要的是,点击提交按钮后,处理的所有数据都会发送到Chrome扩展程序背景页。

请建议我能帮助我做到这一点的任何方法吗?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您需要从iframe向Chrome扩展程序背景页面发送消息。

执行此操作的一种方法是在网页中注入内容脚本并让其侦听消息

  

window.addEventListener('message',....)

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

  

parent.postMessage

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

将消息转发到bg
  

chrome.extension.sendRequest

另一种方法是通过设置

将内容脚本注入Iframe本身
  

all_frames:true

在扩展清单中。