Javascript 用户脚本如何获得页面上ajax驱动更改的通知?
给定网页上的项目随着时间的推移会被AJAX调用更改,用户脚本如何在这些更改发生时得到通知 想象一下Facebook新闻提要。加载页面时,其中有12项。这些项目包装在Javascript 用户脚本如何获得页面上ajax驱动更改的通知?,javascript,userscripts,Javascript,Userscripts,给定网页上的项目随着时间的推移会被AJAX调用更改,用户脚本如何在这些更改发生时得到通知 想象一下Facebook新闻提要。加载页面时,其中有12项。这些项目包装在标签中,标签包含在中。向下滚动页面时,新的数据块将加载到该中 我想知道如何通知用户脚本这样的更改 一个想法是不断地查询这个,计算它的项目,观察这个数字是否变大。这是可能的,但为了在变化发生时及时发现变化,它可能不得不频繁运行,这太昂贵了 $.ajaxSuccess(function() { //check for update and
标签中,标签包含在
中。向下滚动页面时,新的
数据块将加载到该
中
我想知道如何通知用户脚本这样的更改
一个想法是不断地查询这个
,计算它的项目,观察这个数字是否变大。这是可能的,但为了在变化发生时及时发现变化,它可能不得不频繁运行,这太昂贵了
$.ajaxSuccess(function() { //check for update and do something });
另一个想法是找出什么滚动位置触发加载,并观察这种变化。比较便宜,但是非常具体
我想知道是否还有第三种选择。任何时候发生变化都会通知我的东西。我不仅对feed感兴趣,而且对这个概念更感兴趣。如果页面上的项目被AJAX调用更改,用户脚本如何获得这些更改的通知?劫持send方法
var oldSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(){
// do what you need; then send the request
oldSend.apply(this, arguments);
}
劫持发送方法
var oldSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(){
// do what you need; then send the request
oldSend.apply(this, arguments);
}
您有权访问更新页面内容的Ajax调用吗?通常,更好的方法是将回调附加到实际的Ajax调用
如果使用Jquery发出请求,请使用$.ajaxComplete()或$.ajaxSuccess()触发代码。这些将在请求完成的任何时候触发,因此当发生这种情况时,您可以检查内容是否已更改,而不会增加成本
$.ajaxSuccess(function() { //check for update and do something });
您有权访问更新页面内容的Ajax调用吗?通常,更好的方法是将回调附加到实际的Ajax调用
如果使用Jquery发出请求,请使用$.ajaxComplete()或$.ajaxSuccess()触发代码。这些将在请求完成的任何时候触发,因此当发生这种情况时,您可以检查内容是否已更改,而不会增加成本
$.ajaxSuccess(function() { //check for update and do something });
我想你要找的是DOMSubtreeModified事件
这适用于firefox chrome和IE>=9,如果你在facebook上的脚本我猜它是一个greasemonkey/chrome扩展?如果是这样的话,这应该没问题
在添加、删除或更改子节点时,会在节点上激发此事件
你可以和我一起使用
.addEventListener ("DOMSubtreeModified", handler, useCapture);
但我认为它对attachEvent不起作用
这里有更多的信息
我想您要查找的是DOMSubtreeModified事件
这适用于firefox chrome和IE>=9,如果你在facebook上的脚本我猜它是一个greasemonkey/chrome扩展?如果是这样的话,这应该没问题
在添加、删除或更改子节点时,会在节点上激发此事件
你可以和我一起使用
.addEventListener ("DOMSubtreeModified", handler, useCapture);
但我认为它对attachEvent不起作用
这里有更多的信息
这应该是一个评论,你在问一个关于这个问题的问题。OP想要编写facebook的脚本我以为facebook就是一个例子,你是对的,它应该是一个评论,我已经更新了一个有效的答案,我对FB特别感兴趣,不仅仅是feed。这应该是一个评论,你在问一个关于这个问题的问题。OP想要编写facebook的脚本我以为facebook就是一个例子,你是对的,它应该是一个评论,我已经更新了一个有效的答案,我对FB特别感兴趣,不仅仅是feed。你是在使用Firefox、Chrome还是两者兼用?两者都有。safari会很棒的。你是使用Firefox、Chrome还是两者都用?两者都用。狩猎旅行会很棒,但这不是个好建议。突变事件是脆弱的、资源密集型的,现在已经被弃用<不建议使用code>DOMSubtreeModified
,并且在未来版本的浏览器中将取消对此类事件的支持。很高兴知道,我还没有真正使用过它们,它们是我能想到的唯一不涉及保存和比较值的解决方案。这是一个不好的建议。突变事件是脆弱的、资源密集型的,现在已经被弃用<不建议使用code>DOMSubtreeModified
,并且在未来版本的浏览器中将取消对此类事件的支持。很高兴知道,我还没有真正使用过它们,它们是我能想到的唯一不涉及保存和比较值的解决方案。