内容脚本中的IFrame。如何与main.js通信?

内容脚本中的IFrame。如何与main.js通信?,iframe,fancybox,firefox-addon,firefox-addon-sdk,content-script,Iframe,Fancybox,Firefox Addon,Firefox Addon Sdk,Content Script,我的Firefox插件通过内容脚本(页面修改)打开Fancybox(键入:“iframe”)。在Fancybox中,我显示我自己的HTML页面(my_Fancybox_stuff.HTML),该页面位于我自己的服务器中 现在,我可以从my_fancybox_stuff.js(my_fancybox_stuff.html的javascript)的main.js向加载项发送消息吗?还是打开Fancybox的内容脚本 我希望全局“self”对象可以从my_fancybox_stuff.js访问,因为它

我的Firefox插件通过内容脚本(页面修改)打开Fancybox(键入:“iframe”)。在Fancybox中,我显示我自己的HTML页面(my_Fancybox_stuff.HTML),该页面位于我自己的服务器中

现在,我可以从my_fancybox_stuff.js(my_fancybox_stuff.html的javascript)的
main.js
向加载项发送消息吗?还是打开Fancybox的内容脚本

我希望全局“self”对象可以从my_fancybox_stuff.js访问,因为它可以从打开fancybox的内容脚本访问

我很有兴趣听到任何潜在的解决办法来完成这项工作

在Chrome扩展中,这是微不足道的。在
my\u fancybox\u stuff.js
中,我可以调用
chrome.extension.sendMessage()
,它可以正常工作

提前谢谢

编辑:添加一些代码以澄清我的情况。简化了代码,节省了人们阅读的时间。这就像hello world一样简单

从contents_scipt.js(注入页面mod)中,我调用:

my_fancybox_stuff.html的外观如下:

<!doctype html>
<head>
  <meta charset="utf-8">
  <title></title>
  <script src="js/jquery.js"></script>
  <script src="js/my_fancybox_stuff.js"></script>
</head>
<body>
<div id="my-wrapper">
  <div id="my-form-div">
    <form id="my-form" action="#">
      <div>
        <div><p>Name</p></div>
        <div><input id="fullname" type="text" name="fullname" value=""></div>
      </div>
      <div>
        <div><p><a id="my-button" href="#">Press this</a></p></div>
      </div>
    </form>
  </div>
</div>
</body>

名字

在my_fancybox_stuff.js中,当按下按钮(“my_按钮”)时,我想发送一条包含输入字段值(“全名”)的消息,并在content_script.js中收听它。

是的,my_fancybox_stuff.js可以使用
postMessage()
与您的插件的内容脚本进行通信


请参阅。

谢谢布罗克!在发送问题之前,我一直在阅读有关window.postMessage的信息,在您的回答之后,我一直在阅读。我只是一个对任何网络内容都一无所知的傻瓜,我对如何在我的案例中实现它感到困惑。我的意思是,当我想在(页面修改启动的)内容脚本中侦听消息时,window.postMessage中的“window”应该是什么?也许我应该在我的问题中添加一些代码。对。我编辑了这个问题,并添加了一些简化的代码来澄清我的情况。我终于让它起作用了。我只需要在我的_fancybox_stuff.js中调用window.parent.postMessage。在content_脚本中,我调用了addEventListener(“message”,receiveMessage,false)并定义了receiveMessage回调函数。“窗口。家长”对我来说是决定性的部分。布罗克,谢谢你的帮助。接受你的回答。
<!doctype html>
<head>
  <meta charset="utf-8">
  <title></title>
  <script src="js/jquery.js"></script>
  <script src="js/my_fancybox_stuff.js"></script>
</head>
<body>
<div id="my-wrapper">
  <div id="my-form-div">
    <form id="my-form" action="#">
      <div>
        <div><p>Name</p></div>
        <div><input id="fullname" type="text" name="fullname" value=""></div>
      </div>
      <div>
        <div><p><a id="my-button" href="#">Press this</a></p></div>
      </div>
    </form>
  </div>
</div>
</body>