在页面加载时触发addEventListener

时间:2015-04-19 02:17:51

标签: jquery iframe addeventlistener

我在点击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>

我添加了控制台日志以尝试跟踪它的工作情况。

1 个答案:

答案 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>

像魅力一样工作,并没有在父页面加载时触发。