Javascript 与另一个脚本一起使用Tumblr无限滚动
我在这里使用cody sherman的javascript代码: 我还使用一个简单的jquery脚本来动态更改保存tumblr文章的div的背景图像 jquery代码工作正常,但我需要一种方法在无限滚动脚本更新为新帖子时再次调用该函数。我想这是他们互相交谈的一种方式 您可以在此处看到该页面: (它还没有使用无限滚动。但它确实有更改背景图像的脚本。)Javascript 与另一个脚本一起使用Tumblr无限滚动,javascript,jquery,tumblr,infinite-scroll,Javascript,Jquery,Tumblr,Infinite Scroll,我在这里使用cody sherman的javascript代码: 我还使用一个简单的jquery脚本来动态更改保存tumblr文章的div的背景图像 jquery代码工作正常,但我需要一种方法在无限滚动脚本更新为新帖子时再次调用该函数。我想这是他们互相交谈的一种方式 您可以在此处看到该页面: (它还没有使用无限滚动。但它确实有更改背景图像的脚本。) 任何帮助都将不胜感激。如果您感到足够安全,您肯定可以进入该代码(它一点也不长)并向onreadystatechange部分添加一些逻辑。一旦Ajax
任何帮助都将不胜感激。如果您感到足够安全,您肯定可以进入该代码(它一点也不长)并向onreadystatechange部分添加一些逻辑。一旦Ajax调用完成,就会触发此事件。如果你加入它,你可以很容易地添加一些东西来与你的代码对话 另一种方法是劫持
XMLHttpRequest
,这样一旦调用了它的send()
方法,您就可以附加自己的事件侦听器来监视“load”事件的请求。请求完成后,可以调用自定义函数。可以这样做:
XMLHttpRequest.prototype.originalSend=XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send=function(s){
this.addEventListener('load',function(){
//CALL YOUR CODE HERE
},false);
this.originalSend(s);
}
或者,您可以劫持onreadystatechange函数来添加一些您自己的逻辑:
XMLHttpRequest.prototype.originalSend=XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send=function(s){
if(this.onreadystatechange){
var oldORSC=this.onreadystatechange;
}
this.onreadystatechange=function(){
if (this.readyState==4 && this.status==200){ //a successful request
//CALL YOUR CODE HERE
}
if(oldORSC){
oldORSC();
}
}
this.originalSend(s);
}
当然,如果你想支持IE,你必须对他们用于AJAX的ActiveXObject做类似的事情。但我不使用它,所以我不能给你任何例子
编辑:这假设您的页面仅为此目的进行调用。如果您有其他AJAX调用,则需要添加逻辑以确定正在使用哪个调用。为此,您可以挂接到open()
方法中,检查URL或参数,或任何有助于确定调用位置的特定信息,然后相应地修改请求
另外:确保在调用任何其他javascript之前,先调用这些劫持。让我们知道这是否解决了您的问题。另外,在我的回答中,我说错了…你不必在所有其他javascript之前调用此代码,就在无限滚动代码之前。好的。。。我现在在正确的时间触发了一个新的功能。我很想在你的网站上看到这个功能,因为它现在看起来太棒了。这件艺术品太棒了!请让我知道当你用新的代码更新页面。它是你发布的原始url吗?好的。。。我让它工作了!非常感谢您的帮助,安培生!