iFrame中新页面加载时的jQuery事件

时间:2010-12-15 17:10:23

标签: jquery events iframe

我正在尝试在iframe加载新页面时触发的父级上设置一个事件(可能是通过用户点击链接)。

HTML:

<iframe name="posts" id="posts" src="edit.php">

JS:

$(document).ready(function() {
    $('iframe#posts').live('load', function() {
        console.log('live');
    });
});

问题是console.log()语句永远不会被触发。我怎样才能实现我想要做的事情?

3 个答案:

答案 0 :(得分:2)

解决问题的最简单方法是使用jQuery创建iframe。

$(document).ready(function() {
    $("<iframe />").attr({
        id: "posts",
        src: "edit.php"
    }).load(function() {
        console.log('live');
    }).appendTo("body");

这个问题一直是asked here before

答案 1 :(得分:2)

我使用的方式是

<iframe onload="hide_html_player_contents_loading();" ...../>

答案 2 :(得分:1)

我最好的猜测是iframe上的'load'事件在文档上的'ready'事件之前触发,这意味着处理程序安装得太晚了。您可能必须使用onload元素本身中的旧式iframe

或者您可以将$('iframe#posts').live()代码段放在顶级脚本中,而不是放在就绪处理程序中。