javascript - 在重新加载的 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 内容是新页面。还有其他原因导致这可能不起作用吗?
解决方案
这应该可以,检查您发布到的域是您认为的域,而不是 www.originaldomain.com。