自动化页面动作
Bloglines 是一个基于 web 的同步 feed 聚合网站。它的界面上有两个面板;左边的显示您的订阅列表,右边的显示订阅的内容。这个界面很友好;唯一不满意的是:我想每次访问 Bloglines,只看所有未读条目。
在 Bloglines 中,显示所有的未读条目只需要单击一下左手边的面板中订阅列表的根级别(root level),未读的内容就会出现在右手边的面板中。由于我每次都要这样做,因此我写了一个用户脚本来自动完成这项工作。
例 5.2. 让 Bloglines 自动显示所有未读条目
// ==UserScript==
// @name Bloglines Autoloader
// @namespace http://diveintogreasemonkey.org/download/
// @description Auto-display all new items in Bloglines
// @include http://bloglines.com/myblogs*
// @include http://www.bloglines.com/myblogs*
// ==/UserScript==
if (doLoadAll) {
doLoadAll();
}这个用户脚本相当的简单。Bloglines 定义了一个函数 doLoadAll(),当我点击订阅列表的根级别(root level)时就会执行它。调用这个函数可以显示所有的未读条目。
然而,由于 Bloglines 使用了帧(frame),而用户脚本会在每个帧中执行(因为他们都匹配我在 @include 中定义的模式),所以首先要检查在这个帧中是否有 doLoadAll() 函数:
if (doLoadAll) {如果函数存在,我就调用它。因为用户脚本就像原页面的内容一样执行,我可以调用原页面里定义的任何脚本。
doLoadAll(); }