自动翻页油猴脚本

标签: 软件介绍 greasemonkey light pager 自动翻页 | 发表时间:2011-12-23 20:59 | 作者:muzuiget
出处:http://qixinglu.com

最近一直折腾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的控制台,有个别名 $$,还带高亮的。

相关 [油猴 脚本] 推荐:

自动翻页油猴脚本

- - 七星庐
最近一直折腾web开发,尤其是前端的js/css,尝试实现各种效果提升功力. 发现有些网站,尤其是网上商城,如果一个网页很长,小图片很多,就会用js实现lazy方式加载,也就是滚动到图片的位置,才让浏览器去从服务器读取图片,节省流量. 我小小研究了一下这个原理,于是就有了这个脚本了. 就是自动翻页,我曾经洋洋洒洒写过很多篇 关于Autopager的文章,而现在,才100多行代码就实现了这个功能了.

mysql backup 脚本

- - ITeye博客
网上备份脚本很多,但考虑都不周全. 保证创建备份文件只能是创建者跟root可以访问,其他用户没有权限,保证了数据库备份的安全. 上面脚本是负责备份的份数管理,. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

RMAN 备份脚本

- - CSDN博客数据库推荐文章
RMAN冷备份、一致性备份脚本. RMAN热备份、非一致性备份脚本. rman名称不允许重复,%U肯定不重复. %D 位于该月中的第几天 (DD). %M 位于该年中的第几月 (MM). %F 一个基于DBID 唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,. %d 数据库名称其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序列.

CSS 溢出检测脚本

- Public - 陈成的博客
按我的理解,CSS Bug 包含:. 内容 Bug (即运营填入内容或数据库读取内容后出现的 Bug). 其中兼容性 Bug 通常在开发阶段就能解决,而内容 Bug 通常被我们忽略. 比如忘记对文字设置 overflow: hidden;比如忘记对图片设置宽高;等. 所以,为自动化这块的测试工作,我写了个 简单的脚本 ,功能有二:.

在脚本中使用 trap

- jiaosq - IBM developerWorks 中国 : 文档库
要使脚本具有合理的健壮性,需要满足的条件之一就是能够清除强制终止后留下的任何临时日志或进程. 另一项需要考虑的因素是,在收到来自用户的中断后,应当采取哪些相应措施. 通过使用 shell 内置 trap 命令和记录器 (logger) 工具,这些工具有助于提高脚本在被强制终止时的健壮性. 在本文中,我将演示使用 trap 和记录器的方法.

Javascipt脚本调试(Javascript debugging)

- - 博客园_首页
根据 CNZZ数据中心对国内主流浏览器的统计分析,2012年3月国产浏览器中360安全浏览器、搜狗高速浏览器和傲游浏览器的使用率分别为24.39%、7.37%、1.75%;国外浏览器中微软IE浏览器、谷歌Chrome浏览器及苹果Safari浏览器的使用率分别为53.40%、3.21%、2.22%.

Linux下自动FTP脚本

- - ITeye博客
前面写了一个Windows下自动FTP的脚本:. 今天新增Linux下的简单脚本,还待优化. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

进程监控脚本

- - CSDN博客架构设计推荐文章
# 如果不存在, 就重启他. 作者:ahyswang 发表于2014-10-11 22:34:45 原文链接. 阅读:111 评论:0 查看评论.

服务监控脚本

- - Linux - 操作系统 - ITeye博客
已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

编写 Linux 桌面脚本,第 2 部分: 编写 Nautilus 脚本

- ripwu - IBM developerWorks 中国 : Linux : Articles,Tutorials
本系列文章探讨了如何使用 Python 为 GNOME 桌面、screenlets 架构以及 Nautilus 创建脚本,来交付高生产能力的环境. 桌面脚本实现拖放功能,以及快速访问常用信息与服务的功能. 在这一部分中,将学习如何使用 Python 来增加功能,从而实现对桌面 Nautilus 的扩展.