贴吧预加载,自动加载下一页内容,同时附带消灭贴吧自带 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, r###lt;var timeout = null;var previous = 0;options || (options = {});var later = function() {previous = options.leading === false ? 0 : new Date;timeout = null;r###lt = 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;r###lt = func.apply(context, args);} else if (!timeout && options.trailing !== false) {timeout = setTimeout(later, remaining);}return r###lt;};};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
进行判断,不知道作者是否有更好的方法。