0

由于今天ajax被广泛使用,许多页面内容被异步加载。在所有的DOM被加载后,有什么方法可以知道加载的东西?例如,整个页面被加载,但有些图像是由new image()创建/加载的,我怎么能通过javascript知道在网页中发生的这些变化?任何事件都可能有用?javascript监听页面内容已更新

回答

3

已经提到的突变事件应该可以做到。如果使用jQuery,你可以做这样的事情与“DOMSubtreeModified”突变事件:

$(document).ready(function() { 
    $('body').bind('DOMSubtreeModified', 'test', function() { 
     alert('something changed'); 
    }); 

    $('#some-button').click(function() { 
     $('body').append('<h4>added content</h4>'); 
    }); 
}); 

任何内容的变化会显示警告框。在这个例子中,当点击一个ID为“some-button”的按钮时,内容被添加到主体并显示警报。突变事件提供了一些更具体的事件类型,我所展示的事件可能是最一般的。

+0

这就是我希望,非常感谢。 – icespace 2011-05-05 06:21:59

1

下面是一个代码块可以帮助: -

<script> 
    var img = new Image(); 
    img.src = "http://static.yourwebsite.com/filename.ext"; 
    img.onreadystatechange = function(){ 
     if((img.readyState == "complete") || (img.readyState == 4)) { 
      alert("Image loaded dynamically!"); 
     } 
    }; 
</script> 

您必须更改图片来源。事件onreadystatechange将帮助您了解图像是否已加载。 readyState必须是由AJAX发送的complete4,如果我在提取页面时没有弄错。

,或者您可能与

<script> 
    var img = new Image(); 
    img.src = "http://static.yourwebsite.com/filename.ext"; 
    img.onload = function(){ 
     alert("Image loaded dynamically!"); 
    }; 
</script> 

信用去上面的代码:http://www.techrepublic.com/article/preloading-and-the-javascript-image-object/5214317

在这一段代码中,我们使用onload事件来触发图像负载

希望这有助于。如果这有帮助,请将其标记为答案! :D

Cheers

+1

对我来说不好的是,我不知道有没有这样的东西会被添加到网页中:(但是它还是很好的知道。非常感谢你! – icespace 2011-05-05 05:47:37

+0

提到不是,很高兴帮助你 – 2011-05-05 05:48:58