Comment puis-je détecter lorsque le contenu iframe a changé et faire quelque chose après ce changement de pseudo-code ci-dessous
$('#waframe').contents().change(function(){
//do stuff
});
Eh bien, le navigateur semble générer un événement "load" sur un <iframe>
élément dans le contexte de la page contenant. La "charge" se déclenche lorsque le "src" est modifié; Je ne sais pas s'il se déclenche lorsque l'iframe se modifie.
edit: oui, il semble se déclencher lorsque la page se recharge "en interne"
Ainsi, vous pourriez essayer:
$('iframe#yourId').load(function() {
alert("the iframe has been loaded");
});
Je fais un petit tour (saleté mais ça marche) :) pour afficher un objet de chargement
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>
Vous pouvez l'utiliser pour déclencher un événement lors d'un changement. Fonctionne sur IE8 et 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);
}
Vous pouvez utiliser une instruction mouseup
si nécessaire