仅在页面JS更改内容后运行Greasemonkey javascript?

仅在页面JS更改内容后运行Greasemonkey javascript?,javascript,greasemonkey,onload,Javascript,Greasemonkey,Onload,在某些网站上,HTML标记在某些事件发生后加载(javascript函数加载查询或搜索,或者用户需要向下滚动) 当您编写自己的javascript函数试图通过window.onload编辑这些标记时,由于这些标记在技术上还不存在,因此该函数什么也不做。将函数放在正文的底部不起作用,因为这些标记在等待一段时间后不会加载,而是在相关javascript函数创建它们之后加载 例如,如果您想在搜索后更改Google Images中div的灰黑色(向下滚动时会加载更多图片,但如果不这样做,则不会执行任何操

在某些网站上,HTML标记在某些事件发生后加载(javascript函数加载查询或搜索,或者用户需要向下滚动)

当您编写自己的javascript函数试图通过
window.onload
编辑这些标记时,由于这些标记在技术上还不存在,因此该函数什么也不做。将函数放在正文的底部不起作用,因为这些标记在等待一段时间后不会加载,而是在相关javascript函数创建它们之后加载

例如,如果您想在搜索后更改Google Images中div的灰黑色(向下滚动时会加载更多图片,但如果不这样做,则不会执行任何操作),即使您尝试编写Greasemonkey脚本来执行带有
window.onload
的操作,它在向下滚动后不会执行任何操作,因为它已经加载


一个可能的(但粗糙的)解决方案是在用户每次向下滚动时重新运行该函数(就像某种鼠标侦听器)?或者你会推荐另一种方法吗?仅仅延迟该功能并不十分有效,因为这取决于用户何时决定滚动。

下面是一个示例,说明了在滚动窗口时如何添加图像:

window.onscroll=myFunction;
函数myFunction(){
如果(!document.getElementById('img1')){
var img1=新图像();
img1.id='img1';
img1.src=http://placekitten.com/g/200/300';
文件.正文.附件(img1);
}
}



















































您可以使用更新的MutationObserver事件来监视新内容的添加@丹达维斯:嘿,这就成功了!我最终使用了一个名为“突变摘要”的JS库(它实际上是基于突变观察者的),我想出了如何连接这些所谓的突变!非常感谢!(顺便说一句,我不知道如何将你的评论标记为答案…)在重复的问题上发布你的变异观察者答案,它应该在那里得到更多的选票。