自动翻页油猴脚本
- - 七星庐最近一直折腾web开发,尤其是前端的js/css,尝试实现各种效果提升功力. 发现有些网站,尤其是网上商城,如果一个网页很长,小图片很多,就会用js实现lazy方式加载,也就是滚动到图片的位置,才让浏览器去从服务器读取图片,节省流量. 我小小研究了一下这个原理,于是就有了这个脚本了. 就是自动翻页,我曾经洋洋洒洒写过很多篇 关于Autopager的文章,而现在,才100多行代码就实现了这个功能了.
最近一直折腾web开发,尤其是前端的js/css,尝试实现各种效果提升功力。
发现有些网站,尤其是网上商城,如果一个网页很长,小图片很多,就会用js实现lazy方式加载,也就是滚动到图片的位置,才让浏览器去从服务器读取图片,节省流量。我小小研究了一下这个原理,于是就有了这个脚本了。
就是自动翻页,我曾经洋洋洒洒写过很多篇 关于Autopager的文章,而现在,才100多行代码就实现了这个功能了。而且对于我自己来说,用法更加灵活。
已经上传到userscript,取名 Light Pager,轻量级,够简单。
只所以100行就能搞定,全靠一个函数 document.querySelector,使用css选择器来命中页面元素,Firefox3.5就开始有了(更早的版本就要上js库,如JQuery)。那些用一大坨 getElementsByXXX
来选择复杂的元素的陈年老脚本该改写了。而选择元素也可以用xpath,但css选择器语法比xpath简洁多了,学习成本为零,xpath一大坨斜杆太纠结了。而那些翻页脚本/扩展就是用xpath的,所以我干脆用css选择器实现一个。
当然这个脚本还不支持读取外部已定义的规则,而需要自己添加,所以要懂点css和js,注定这个脚本会很小众。直接编辑代码,对web开发者肯定最灵活的了,普通用户用还是得加界面,写成扩展更合适(还得弄个分享规则站点)。
不过我还是解释一下规则写法吧,在代码顶部有个 SITES
变量,这个就是定义站点规则的了,我已经加了个google搜索作为例子
{ url: 'https?://www.google.com/search?', next: '#pnnext', content: '#center_col', removes: '#topstuff, #extrares', count : 2, height: 0.95 }
url
: 正则表达式字符串。如果当前网址符合这个表达式,则使用这个规则。next
: 下一页链接的css选择器,必须是html的 a
标签,带有 href
属性。content
: 下一页正文内容的css选择器。这个节点就是会追加到当前页。removes
: 删除正文内容里的节点css选择器。如果正文内容还是有些元素你想删除的,就在这里定义。这个值是可选的。count
: 翻页次数,当达到这个数字就停止翻页了, 0
表示无限制。这个值也是可选的,如果不存在,则用全局默认值。height
: 开始翻页位置高度,就是当滚动距离底部哪个位置开始翻页,如果小于1,则自动根据窗口大小计算。这个值也是可选的,如果不存在,则用全局默认值。测试css选择器可以内置控制台执行 document.querySelector
来测试,如果用firebug的控制台,有个别名 $$
,还带高亮的。