如何在页面动态加载内容时运行javascript函数

如何在页面动态加载内容时运行javascript函数,javascript,lazy-loading,Javascript,Lazy Loading,我目前正在编写一些Javascript代码,在页面加载后跨HTML文件中的文本添加一些标记。我使用 window.onload 实现这一点的方法 然而,我在google plus这样的页面上遇到了一个问题,当你向下滚动时,你会得到更多的内容。当这样的页面添加更多内容时,有没有方法调用我的JS函数 谢谢 Akshay有几种方法可以实现这一点。您可以这样使用jquery: $('#mydiv').bind("DOMSubtreeModified",function(){ // your c

我目前正在编写一些Javascript代码,在页面加载后跨HTML文件中的文本添加一些标记。我使用

window.onload
实现这一点的方法

然而,我在google plus这样的页面上遇到了一个问题,当你向下滚动时,你会得到更多的内容。当这样的页面添加更多内容时,有没有方法调用我的JS函数

谢谢


Akshay

有几种方法可以实现这一点。您可以这样使用jquery:

$('#mydiv').bind("DOMSubtreeModified",function(){
    // your code goes here
    alert('changed');
});
请注意,IE8(及以下版本)不支持这一点

或者,您可以运行循环并持续触发所需代码:

var interval = setInterval(function() {
    // your code goes here
}, 1000);

Fiddle:

请参见。您能使用jQuery吗?或者只需要使用普通javascript。如果您可以使用jQuery,请尝试使用选择器的“on”进行延迟绑定。我的错!改用。我尝试使用第一个,但我得到了以下错误:错误:我在chrome中使用tampermonkey进行测试,刚刚将您的代码粘贴在那里,并将“mydiv”更改为“body”。我已经尝试过,它按预期工作,我只是在定义中有一个输入错误,我忘记在选择器中添加“#”。现在我还添加了工作小提琴。嗨@MatúšDúbrava。这是有效的:)但是,我注意到,当我对页面主体进行更改时,它会对任何更改进行回调。在页面的HTML变得“稳定”后,有没有办法做到这一点/我想有一种方法可以做到这一点,如果在一段预设时间内没有发生任何更改,则会触发超时。你能想到其他一些启发式程度较低的方法吗?你所要求的在算法上是不可能的,因为不存在“稳定”状态。您的页面不知道它的内容是否可以再次更改,或者这是最后一次更改,将不再有任何更改。因此,您可以如您所说在一定时间后触发超时,或者指定更改的最大数量,随着每次更改增加计数器,当达到最大值时,您知道这是您想要的事件。除此之外,你别无选择。我很快意识到。。我只是继续使用第二种方法:基于时间间隔的更新。我尝试了mutationobserver方法,但显然Android 4.2不支持这种方法,感谢您的帮助和解释