Javascript 使用postMessage的Fancybox/iFrame位置(跨域)

Javascript 使用postMessage的Fancybox/iFrame位置(跨域),javascript,iframe,fancybox,postmessage,Javascript,Iframe,Fancybox,Postmessage,当用户单击标题区域中的按钮时,我试图获取iFrame(在fancybox中)的位置。它位于不同的域中,因此我使用postMessage,我希望它能够获取完整的url(例如“www.example.com?pid=12345”),这样当fancybox使用“尝试搜索”按钮关闭时,我的站点就可以搜索pid“12345” 片段 <script type="text/javascript"> window.addEventListener("message", function(e) {

当用户单击标题区域中的按钮时,我试图获取iFrame(在fancybox中)的位置。它位于不同的域中,因此我使用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'
  });
});

window.addEventListener(“消息”,函数(e){
警报(e.data+“:”+e.origin+“:”+e.source);
},假);
$(文档).ready(函数(){
$(“代码查找”).fancybox({
“宽度”:1050,
“高度”:75%,
“title”:“

”, “标题位置”:“内部”, “type”:“iframe” }); });
这会提醒“Hello?”消息OK,但e.origin返回父域(而不是iFrame的url)。如果我发送了postMessage(this.location,“*”),它是未定义的


有人能帮忙吗?

你试过这个图书馆吗

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

你是怎么做到的?。。。我也有同样的问题。。。仍然没有解决方案。。。我希望你能发布工作解决方案!提前谢谢