我在点击iframe中的链接后尝试在iframe的父级上显示iframe模式弹出窗口。这是有效的,但父页面上的addEventListener函数会在页面加载时触发,而不是等待来自子iframe的单击。我搜索了这个网站,找不到我想要的答案。以下是来自父母的代码:
<script>
$(document).ready(function(){
$("#closer").click(function () {
$("body").css('overflow','auto');
$(".overlay").hide("fast");
});
window.addEventListener("message", function(event) {
$("body").css('overflow','hidden');
$(".overlay").show("fast");
console.log("Hello from " + event.data);
});
});
</script>
这是来自子iframe的代码:
<script>
$(function() {
$(".standard").click(do_stuff);
function do_stuff(){
parent.postMessage("child frame", "*");
}
});
</script>
我添加了控制台日志以尝试跟踪它的工作情况。
答案 0 :(得分:0)
好的,我明白了。我将eventlistener从父框架上的文档加载中取出,然后使用不同的jquery函数从主页面调用该函数。
父页面脚本
<script>
function open_post() {
$("body").css('overflow','hidden');
$(".overlay").show("fast");
console.log("Hello from " + e.data);
}
</script>
儿童iframe脚本:
<script>
$(function() {
$(".standard").click(parent.open_post);
});
</script>
像魅力一样工作,并没有在父页面加载时触发。