from - jquery text tag
los contenidos iframe cambian el evento? (3)
¿Cómo puedo detectar cuándo el contenido del iframe ha cambiado y hacer algo al cambiar ese pseudo código a continuación?
$(''#waframe'').contents().change(function(){
//do stuff
});
Bueno, el navegador parece generar un evento de "carga" en un elemento <iframe>
en el contexto de la página que lo contiene. La "carga" se dispara cuando se cambia "src"; no estoy seguro de si se dispara cuando el iframe se cambia a sí mismo.
editar: sí parece disparar cuando la página se recarga "internamente"
Por lo tanto, puede intentar:
$(''iframe#yourId'').load(function() {
alert("the iframe has been loaded");
});
Estoy haciendo un pequeño truco (suciedad pero funciona) :) para mostrar un objeto de carga
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>
Puede usar esto para activar el evento de cambio. Funciona en IE8 y 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);
}
Puede usar una declaración de mouseup
si es necesario