ShortcutBinder – 用快捷键点击链接!

几个月前,碰到一个用快捷键点击链接的 firefox 插件,它自动为页面上所有的链接添加快捷键,而且不能自定义,这样就没啥实用价值了。前些天,突发奇想,自己写一个能给任意网页的添加快捷键的 GreaseMonkey 脚本。

在动手之前,我用 userscript shortcut 为关键字搜索了一下,找到了这个牛叉叉的 GreaseMonkey 脚本——ShortcutBinder!它使用了 XPath 来选取网页中链接和控件。

嘛是 XPath
XPath 是一门在 XML 文档中查找信息的语言。看懂下面的东西,需要一点网页基础,如果你没有一点网页基础,建议去 w3school 中文版学习下

ShortcutBinder 有啥用呢?比如:

  1. 像在 Gmail 和 Google Reader 里一样,用 J、K 来点击小众的上一篇文章和下一篇文章链接。
  2. 用 S 来定位到小众的搜索框、Google 的搜索框、任意网页的搜索框。
  3. 用 C 来定位到小众的留言栏。
  4. 用 Alt + A 来切换到 Google 的高级搜索页面。

非常适合被 Gmail 惯坏的快捷键爱好者。

安装

你需要 Firefox 浏览器一只,并安装扩展 GreaseMonkey,然后安装脚本 ShortcutBinder

例子 1:用 J、K 来点击小众的上一篇文章和下一篇文章链接:

  1. 在开始之前,设置一下 ShortcutBinder,右击状态栏的 GreaseMonkey 图标,指向“用户脚本命令”,选择“Set shortcut for bind dialog”。

    ShortcutBinder - 用快捷键点击链接! 1

  2. 这时候,当前网页就会出现设置界面,建议把添加快捷键(Add Shortcut)设置为 A,把,管理快捷键(Manage shortcut)设置为 M。设置后需要刷新页面,快捷键才能启用:

    ShortcutBinder - 用快捷键点击链接! 2

  3. 打开小众里有上一篇下一篇链接的文章,比如 EXE Password Protector – 给 EXE 加个密码 [今日免费]
  4. 然后按下快捷键 A,添加快捷键。点击“两个 CSV 小工具”这个链接,XPath to element 就会自动获得链接的 XPath 表达式。

    ShortcutBinder - 用快捷键点击链接! 3

    自动生成的 XPath 路径表达式太过智能了,把最后“[(text()=’ 两个 CSV 小工具’)]”删除。不删除的话,这个路径只能匹配到“两个 CSV 小工具”这篇文章。修改后的路径能匹配到小众单篇文章页面的上一篇文章的链接。下一篇也一样处理。怎么理解这个路径表达式呢?很简单,把它看成系统路径一样。

  5. 在 Shortcut 里输入你想要的快捷键,比如 J(注:截图里是 S,汗。。),当然也可以是组合键。然后点击 Save。
  6. 不用刷新页面,按下 J 试试吧。

例子 2:用 S 来定位到小众的搜索栏。按下 A 添加快捷键,然后点击搜索框,在 Shortcut 里输入 S,保存。

例子 3:用 S 来定位到 Google 的搜索框:

  1. 打开 Google 随便搜索,比如小众软件
  2. 右击网页,选择“查看页面源代码”,在源代码里搜索“小众软件”,搜索到的第一个结果是这样的:<input type=text name=q size=41 maxlength=2048 value=“小众软件” title=“Search”>,我们只需要用到“name=q”。
  3. 按下 A 添加快捷键,然后点击搜索框,获得的 XPath 路径是这样的:
    ShortcutBinder - 用快捷键点击链接! 4
  4. 这样的路径是不通用的。删除[(@value=’小众软件’)]。脚本立刻提醒:“We’ve matched 4 nodes!”,意思是匹配到了 4 个节点。如果这里只匹配到 1 个节点,就可以和例子 1 一样,输入快捷键,保存。
    ShortcutBinder - 用快捷键点击链接! 5
  5. 怎么办呢?用上第二步记录下来的“name=q,把“[(@value=’小众软件’)]”修改为“[(@name=’q’)]”。
    ShortcutBinder - 用快捷键点击链接! 6
  6. 建议把 Include,修改为 http://www.google.*/search?*,这样的地址只会匹配到各个国家域名的 Google 搜索页面,不会匹配到 Google 的其他服务。不修改也没什么问题,只是我搜索英文资料的时候,比较喜欢切换到 Google 英文版
  7. 剩下的步骤略。

比较不足的是管理快捷键的界面,我们按下 M 试试:

ShortcutBinder - 用快捷键点击链接! 7

所有你定义的快捷键都出现了,不管是在哪个网站定义的。如果只显示当前网站的快捷键,就完美了。另外,Include 一栏,只能填写一个网址。

最后,ShortcutBinder 只能点击链接、输入框、单选按钮。下拉列表框是没办法点击的。

45 条留言

      • cuthead 2008/12/08 回复
  1. 2008/12/04 回复
    • sfufoet 2008/12/04 回复
    • armgod 2008/12/04 回复
      • sfufoet 2008/12/04 回复
      • armgod 2008/12/04 回复
      • Enson 2008/12/05 回复
  2. 导演博客 2008/12/04 回复
  3. scavin 2008/12/04 回复
    • sfufoet 2008/12/04 回复
    • armgod 2008/12/04 回复
    • Enson 2008/12/05 回复
    • Guar 2008/12/05 回复
  4. scavin 2008/12/04 回复
    • sfufoet 2008/12/04 回复
  5. meidog 2008/12/04 回复
    • sfufoet 2008/12/05 回复
      • meidog 2008/12/05 回复
      • sfufoet 2008/12/05 回复
  6. 熊歌 2008/12/05 回复
    • sfufoet 2008/12/05 回复
  7. xyly 2008/12/05 回复
  8. David 2008/12/05 回复
  9. siriuz 2008/12/05 回复
  10. prcgolf 2008/12/05 回复
    • sfufoet 2008/12/05 回复
    • scavin 2008/12/05 回复
  11. zxone 2008/12/05 回复
    • sfufoet 2008/12/05 回复
  12. cuthead 2008/12/08 回复
  13. 乐者为王 2008/12/27 回复
  14. wang316316 2009/01/17 回复
  15. sheng 2009/03/19 回复
  16. Eureka 2009/10/16 回复
  17. 卫卡星 2011/03/03 回复

写留言