Как я могу определить, когда содержимое iframe было изменено и что-то произошло после этого псевдоопределения ниже
$('#waframe').contents().change(function(){
//do stuff
});
Как я могу определить, когда содержимое iframe было изменено и что-то произошло после этого псевдоопределения ниже
$('#waframe').contents().change(function(){
//do stuff
});
Ну, браузер, похоже, генерирует событие "load" в элементе <iframe>
в контексте содержащейся страницы. "Load" срабатывает при изменении "src"; не уверен, срабатывает ли он, когда изменяется iframe.
изменить: да, похоже, он срабатывает, когда страница перезагружается "внутренне"
Таким образом, вы можете попробовать:
$('iframe#yourId').load(function() {
alert("the iframe has been loaded");
});
Делаю трюк litle (грязь, но он работает):) для отображения загружаемого объекта
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>
Вы можете использовать это для запуска события при изменении. Работает на 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