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

时间:2013-06-07 06:27:15

标签: iframe fancybox firefox-addon firefox-addon-sdk content-script

我的Firefox插件从内容脚本(page-mod)打开Fancybox(类型:“iframe”)。在Fancybox中,我展示了自己的HTML页面( my_fancybox_stuff.html ),该页面位于我自己的服务器中。

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

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

我很想知道任何可能的解决方法来完成这项工作。

在Chrome扩展程序中,这是微不足道的。在my_fancybox_stuff.js我可以致电chrome.extension.sendMessage()并且确实有效。

提前致谢!

编辑:添加一些代码以澄清我的案例。简化代码以节省人们阅读时间。这就像你好世界一样简单。

从contents_scipt.js(用page-mod注入)我调用:

$.fancybox.open(
    {
    // Some irrelevant Fancybox options hidden for clarity
    href:"http://www.mysite.com/my_fancybox_stuff.html
    type: 'iframe'
    }
);

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_button”)时,我想发送一条包含输入字段值(“fullname”)的消息,并在content_script.js中监听它。

1 个答案:

答案 0 :(得分:2)

是的,您的 my_fancybox_stuff.js 可以使用postMessage ()与您的加载项内容脚本进行通信。

请参阅the documentation and examples at MDN