Greasy Fork is available in English.
贴吧预加载,自动加载下一页内容,同时附带消灭贴吧自带 Lazy Load 功能
< Σχολιασμός για τον κώδικα Tieba Preload
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
进行判断,不知道作者是否有更好的方法。