【问题标题】:Fancybox / iFrame location (cross domain) using postMessage使用 postMessage 的 Fancybox / iFrame 位置(跨域)
【发布时间】:2011-08-29 07:41:05
【问题描述】:

当用户单击标题区域中的按钮时,我试图获取 iFrame 的位置(在花式框中)。它在不同的域上,所以我使用 postMessage,我希望它获取完整的 url(例如“www.example.com?pid=12345”),所以当使用“尝试搜索”按钮关闭 fancybox 时,我的然后站点可以搜索 pid“12345”。

片段...

<script type="text/javascript">
  window.addEventListener("message", function(e) {
    alert(e.data + " : " + e.origin + " : " + e.source);
  }, false);
</script>


<script type="text/javascript">
  $(document).ready(function() {
    $("a#codelookup").fancybox({
    'width' : 1050,
    'height' : '75%',
    'title' : '<p class="wrapbutton"><a href="javascript:;" onClick="postMessage(\'Hello?\', \'*\'); $.fancybox.close();">Attempt Search</a></p>',
    'titlePosition' : 'inside',
    'type' : 'iframe'
  });
});

这会提醒“你好?”消息 OK,但 e.origin 返回父域(不是 iFrame 的 url)。如果我 postMessage(this.location, '*') 它是未定义的。

有人可以帮忙吗?

【问题讨论】:

  • 你是怎么做到的?......我有同样的问题......仍然没有解决方案......我希望你能发布有效的解决方案!提前致谢

标签: javascript iframe fancybox postmessage


【解决方案1】:

这是不可能的。出于安全原因,不同域的 iframe 无法与它所在的页面进行通信。

【讨论】:

    【解决方案2】:

    你试过这个库吗? http://easyxdm.net/wp/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-01
      • 2011-11-23
      • 2012-02-02
      • 2020-05-04
      • 2016-03-02
      • 2012-06-11
      • 1970-01-01
      • 2016-10-08
      相关资源
      最近更新 更多