iframe内容改变事件?

时间:2010-03-12 16:04:03

标签: jquery iframe

如何检测iframe内容何时发生变化,并根据

更改伪代码执行某些操作
 $('#waframe').contents().change(function(){
   //do stuff
  });

3 个答案:

答案 0 :(得分:26)

好吧,浏览器似乎在包含页面的上下文中的<iframe>元素上生成“加载”事件。当“src”改变时,“load”会激活;不知道当iframe发生变化时是否会触发它。

编辑:是的,当页面重新加载“内部”时似乎会触发

因此你可以尝试:

$('iframe#yourId').load(function() {
  alert("the iframe has been loaded");
});

答案 1 :(得分:4)

我正在做一个小技巧(污垢,但它有效):)显示一个加载对象

function changeDet(old){ //detect src changes
    if($("iframe#ifID").attr('src') != old){
        $("iframe#ifID").width(0); //error if i hide ...?
    }

    setTimeout('changeDet("' + $("#db").attr('src') + '")',10);
}

var df = $('#iframe#ifID');

df.load(function(){ //content loaded
setTimeout('$("#db").width(var_default_width);',100);
});

changeDet();

$(function(){   
    //jq stuffs...
})
</script>

答案 2 :(得分:1)

你可以使用它在更改时触发事件..适用于IE8和firefox

if(document.addEventListener){
    yourIFrameObject.contentWindow.document.addEventListener('keyup', yourFunction, false);
   // window.frames[0].document.addEventListener('keyup', yourFunction, false);
}
else{
//for IE8
    yourIFrameObject.contentWindow.document.attachEvent('onkeyup', yourFunction);
}

如有必要,您可以使用mouseup声明