首页 > 解决方案 > 在重新加载的 iframe 中使用 postMessage 不起作用

问题描述

我有简单形式的 iframe(由第三方供应商提供)。表单提交后 iframe 的内容会重新加载,并带有确认页面。在该页面上,我要求提供者添加此脚本:

<script type="text/javascript">
    window.setTimeout(function(){
        window.parent.postMessage('mailing_list_confirmation','http://originURL.com/');
    },100) </script>

我拥有的顶部窗口:

<script>
    jQuery(function($) {
    $(window).on('mailing_list_confirmation',function(){
          console.log("iframe_message");
       });
    });
</script>

没什么复杂的。我也尝试过使用普通的 JS。我在我的本地主机(2 个不同的域)上尝试了这个,它运行良好。不同之处在于 iframe 最初是加载的。在这种情况下,iframe 内容是新页面。还有其他原因导致这可能不起作用吗?

标签: javascriptiframecross-domainpostmessage

解决方案


这应该可以,检查您发布到的域是您认为的域,而不是 www.originaldomain.com。


推荐阅读