gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 15:50:35 25 4
gpt4 key购买 nike

当用户单击标题区域中的按钮时,我试图获取 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'
});
});

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

有人可以帮忙吗?

最佳答案

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

关于javascript - 使用 postMessage 的 Fancybox/iFrame 位置(跨域),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6066521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com