增强 Firefox 中的 Find 命令
Firefox 中的 Find 命令可以在 Web 页面的主体中定位用户指定的文本。该命令是一个易于使用的工具,大多数用户通常都可以很好地使用该工具。但是,使用更强大的类似 Find 的工具有时可以更轻松地定位文本。本文将介绍如何构建这种工具,通过检测邻近文字的显示和消失更快地隔离 Web 页面中相关的文本。
Firefox 中自带的文本搜索功能提供了实用的可以突出显示邻近搜索词和短语的功能。附加的 Firefox 扩展可用于合并正则表达式搜索与其他文本高亮显示功能。本文将提供向 Firefox 中添加自定义文本搜索界面所需的工具和代码。使用 Greasemonkey 用户脚本和一些自定义算法,您可以将 grep -v 函数添加到文本搜索中 — 也就是说,在第二个搜索词不在附近时高亮显示第一个搜索词。
要求
硬件
用较旧(2002 年以前)的硬件在典型 Web 页面中进行文本搜索几乎可以瞬间完成。但是,本文提供的代码在设计时没有考虑高速执行,并且可能要求使用较快的硬件才能在大型 Web 页面中按照用户满意的速度执行。
软件
本文的代码是为了结合使用 Firefox V2.0 和 Greasemonkey V0.7 而开发的。使用比它们更高的版本需要测试并且可能需要修改才能确保功能性。作为 Greasemonkey 脚本,本文提供的代码应当可以在支持 Firefox 和 Greasemonkey 的任何一个操作系统中运行。我们在 Microsoft? Windows? 和 Linux? Ubuntu V7.10 版本中进行过测试。
Greasemonkey 和 Firefox 扩展
对 Web 页面执行用户修改是 Greasemonkey 履行的任务,并且本文提供的代码将使用 Greasemonkey 框架来搜索和高亮显示相关文本。有关 Greasemonkey Firefox 扩展,请参阅 参考资料。
此 Greasemonkey 脚本的设计目的演示
熟悉 UNIX grep 命令及其常用 -v 选项的人知道如何将不可缺少的 grep 用于从文件提取相关文本行。遵守 UNIX 简单性原则的文本文件通常按照逐行的格式存储文本,这样可以轻松地找到靠近在一起的文字。-v 选项将输出未找到指定文本的行。
与文本文件不同的是,Web 页面通常用标签和浏览器呈现到行中的其他标记分隔文本。各种不同的浏览器窗口大小使您很难根据期望的行位置来隔离邻近文本。表、链接和其他文本标记也使您很难隔离位于 “同一行” 的文本。
本文中的算法旨在解决这些难题,提供类似于 grep 的简单功能,并使用工作原理类似于 grep 的 -v 选项的函数。这将允许用户查找文本的某个词,然后只高亮显示不包含另一个不同词的条目。图 1 显示了这种情况的示例。
图 1. DOM 和 DOM hierarchy 搜索示例
在图像的上半部分中,脚本高亮显示了搜索文本 “DOM”。在下半部分中,注意如何只高亮显示前三个 “DOM” 条目,因为在极为接近第三个 “DOM” 的位置找到了第二个搜索文本 “hierarchy”。
考虑图 2。
图 2. 2008 和 2008 PM 搜索示例
该图的第一部分显示所有 2008 条目,而第二部分由于 -v 关键字 PM,因此只显示中午前的条目。继续阅读获得全部信息以及如何实现此功能的更多示例。
[2] [3] [4] [5] 下一页
- 最新评论