快速业务通道

增强 Firefox 中的 Find 命令

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-10
再次使用 XPath,oneWordSearch 将处理每个文本节点以找到查询.找到后,将调用 highlightAll 函数,如清单 8 所示.


清单 8. highlightAll 函数

function highlightAll( nodeOne, textIn )
{
if( nodeOne.parentNode != null )
{
full = nodeOne.parentNode.innerHTML;
var reg = new RegExp( textIn, "g");
full = full.replace( reg, highStart textIn highEnd );
nodeOne.parentNode.innerHTML = full;
}//if the parent node exists
}//highlightAll

function highlightOne( nodeOne, wordOne, wordTwo )
{
var oneIdx = nodeOne.data.indexOf( wordOne );
var tempStr = nodeOne.data.substring( oneIdx wordOne.length );
var twoIdx = tempStr.indexOf( wordTwo );

// only create the highlight if it''s not too close
if( twoIdx > dist )
{
var reg = new RegExp( wordOne );
var start = nodeOne.parentNode.innerHTML.replace(
reg, highStart wordOne highEnd
);
nodeOne.parentNode.innerHTML = start;
}//if the distance threshold exceeded
}//highlightOne

如果两个词不在同一个节点中,则在第一次匹配时设置 foundSingleNode 变量.对于后续匹配,在第二次节点匹配之前,当再次侦测到单个节点时,调用 highlightAll 函数.这将确保高亮显示第一个词的每个实例 — 甚至第二个词不在附近的那些词.在循环过程中,如果隔离了一个 wordOne 匹配并且仍然需要高亮显示,则执行最终检查以运行 highlightAll.

将用以上代码创建的文件另存为 greppishFind.user.js,继续阅读获得安装和使用细节.

安装 greppishFind.user.js 脚本

打开安装了 Greasemonkey V0.7 扩展的 Firefox 浏览器,并输入 greppishFind.user.js 所在目录的 URL.单击 greppishFind.user.js 文件,然后应当会看到标准 Greasemonkey 安装弹出.选择 install,然后重新载入页面以激活扩展.

用法示例

在将 greppishFind.user.js 脚本安装到 Greasemonkey 中后,可以通过输入 dom inspector 作为在 www.google.com 中的搜索查询模拟图 1 中所示的示例.显示结果页面时,请按 Alt = 组合键激活用户界面.键入查询 DOM(区分大小写)并按 Enter 键以查看所有高亮显示的 DOM 条目.将查询更改为 DOM hierarchy,您将看到如何只高亮显示前三个 DOM 条目,如图 1 所示.

选择诸如 file:///home/ 或 file:///c:/ 之类的目录清单以显示类似图 2 中列出的条目.您可能需要更改距离参数或者高亮显示样式才能得到符合搜索条件的结果.

结束语

有了以上代码和已完成的 greppishFind.user.js 程序后,您现在已经为在 Firefox 中实现自己的文本搜索功能打下了基础.虽然此程序主要关注某些词与其他词极为接近的特殊情况,但是它为以后的文本搜索选项提供了框架.

考虑根据第二搜索词的邻近程度为高亮显示词添加颜色变化.扩展 grep -v 词的数目以逐步删除条目.使用本文的代码结合您自己的想法创建新的 Greasemonkey 用户脚本,进一步增强用户查找文本的能力.


凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号