贴吧预加载,自动加载下一页内容,同时附带消灭贴吧自带 Lazy Load 功能
CC说这个脚本暂停维护了
CC说这个脚本暂停维护了
好吧,我自己改下。可恶的 KeeFox 自动填写,标题都变成这样,改都不能改。。。
贴吧现在几乎全程使用 Ajax,导致现在基本没什么比较好的方法判断,点击只看楼主后刷新了一遍 PageData.special.lz_only 就变为 1 了……
其实现在最大的问题是贴吧的楼中楼问题,如果不能解决楼中楼问题,这个脚本还是无法继续使用(因为翻页后剩下的楼层的楼中楼便不会加载……)
好吧,我自己改下。可恶的 KeeFox 自动填写,标题都变成这样,改都不能改。。。
我就说呢,这个标题真带感
贴吧现在几乎全程使用 Ajax,导致现在基本没什么比较好的方法判断,点击只看楼主后刷新了一遍 PageData.special.lz_only 就变为 1 了……
其实现在最大的问题是贴吧的楼中楼问题,如果不能解决楼中楼问题,这个脚本还是无法继续使用(因为翻页后剩下的楼层的楼中楼便不会加载……)
没太明白你的意思,在加载的第4页还是有楼中楼。
我对贴吧要求不高,在看一些很长的帖子时,只看楼主这点就很重要。简单修改了下,使用正常。
CC说这个脚本暂停维护了好吧,我自己改下。可恶的 KeeFox 自动填写,标题都变成这样,改都不能改。。。
帮你想了个差不多的标题(?)
帮你想了个差不多的标题(?)CC说这个脚本暂停维护了好吧,我自己改下。可恶的 KeeFox 自动填写,标题都变成这样,改都不能改。。。
非常感谢。
贴吧现在几乎全程使用 Ajax,导致现在基本没什么比较好的方法判断,点击只看楼主后刷新了一遍 PageData.special.lz_only 就变为 1 了……
其实现在最大的问题是贴吧的楼中楼问题,如果不能解决楼中楼问题,这个脚本还是无法继续使用(因为翻页后剩下的楼层的楼中楼便不会加载……)
我试的几个网页,PageData.special.lz_only 一直为 0。
随手还改了个地方
function whether_fetching(){
cur_page = PageData.pager.cur_page;
next_page=cur_page+1;
see_lz = (location.href.indexOf('?see_lz=1') == -1 ? 0 : 1);
可以使用 underscore.js 的 throttle 来监视滚动节省资源。
_.throttle = function(func, wait, options) {
var context, args, result;
var timeout = null;
var previous = 0;
options || (options = {});
var later = function() {
previous = options.leading === false ? 0 : new Date;
timeout = null;
result = func.apply(context, args);
};
return function() {
var now = new Date;
if (!previous && options.leading === false) previous = now;
var remaining = wait - (now - previous);
context = this;
args = arguments;
if (remaining <= 0) {
clearTimeout(timeout);
timeout = null;
previous = now;
result = func.apply(context, args);
} else if (!timeout && options.trailing !== false) {
timeout = setTimeout(later, remaining);
}
return result;
};
};
var throttled = _.throttle(scroll, 100);
$(window).scroll(throttled);
楼上的已无法编辑,后面才发现改的有错误。
改了如下几个地方,不知道是否还有问题。
前面的 see_lz
see_lz = (location.href.indexOf('?see_lz=1') == -1 ? 0 : 1),
function preload_listener(){
if(cur_page!=total_page){
//console.log('aaa');
//window.onscroll=function(){ // 改用定时器以节省资源
var throttleId = _.throttle(whether_fetching, 500);
window.addEventListener('scroll', throttleId, false);
// loader=setInterval(function(){whether_fetching()},1000);
//}
}
}
whether_fetching 函数加了一段
if(cur_page < total_page){
loading=true;
if(PageData.product=='frs') {
cur_page=location.href.match(/pn=(\d+)/)?parseInt(location.href.match(/pn=(\d+)/)[1]):0;
next_page=cur_page+50;
} else if(PageData.product=='pb'&&PageData.pager){
cur_page = PageData.pager.cur_page;
next_page=cur_page+1;
see_lz = (location.href.indexOf('?see_lz=1') == -1 ? 0 : 1);
}
fetch_next_page();
}
@864907600cc
好吧我已经发布修复版本了才看到 _(:з」∠)_
两年前写的那个雏形我也是监听 scroll,但是资源占用实在有点大,所以这个版本就用了定时器,有时间我再看看你的代码
好吧我已经发布修复版本了才看到 _(:з」∠)_
两年前写的那个雏形我也是监听 scroll,但是资源占用实在有点大,所以这个版本就用了定时器,有时间我再看看你的代码
已更新
「只看楼主」判断失效
点击只看楼主,加载的下一页并不是只看楼主。看了下代码,你是用
see_lz=PageData.special.lz_only,进行判断,我在2个页面(一个只看楼主、一个全部)测试,结果都为0。目测可根据地址中的
?see_lz=1进行判断,不知道作者是否有更好的方法。