文本的搜索替换,这个是在服务器端完成的,比如google的搜索结果中,在处理是的最后输出中就是这样的应用,比如要搜索 "aaa" 在数据库提取数据后把"aaa" 替换成 "<font color='xxxx' >aaa</font>"就完了。
解决方案 »
- 谁能说说jquery和prototype.js的区别
- 我用aptana生成的html文件代码为什么没有高亮显示呢?
- hbhbhbhbhb1021(天外水火(我要多努力),进来拿分,我给你留言了,老问题,整数1-18去掉0,
- 求下面 js能封装吗。像JQ一样拿来用
- 请问这个两个条件的判断语句哪里错了,为什么怎么调试都没用阿!
- 请教:窗口关闭触发事件问题?
- 用 <A HREF="" target="_BLANK">打开的新窗口能控制其大小吗?
- 爆菜问题~!
- 如何对全路径中文件名进行提取?
- javascript值传递和引用传递的问题
- 请问如何才能在页面 弹出文件夹选择窗口?
- 急::::如何在WEB页上实现TAB分页的效果,即每个TAB标签显示时对应的内容不同?
{
var seachStr = "xxx";
var sClassName = "OOO";
for(var i=0;i<document.body.all.length;i++)
{
var tempObj = document.body.all.item(i);
if(tempObj.innerText.indexOf("seachStr")>=0)
{
try
{
tempObj.innerHTML = tempObj.innerHTML.replace("<span class=\"" + sClassName + "\">" + seachStr + "</span>",seachStr);
tempObj.innerHTML = tempObj.innerHTML.replace(seachStr,"<span class=\"" + sClassName + "\">" + seachStr + "</span>");
}
catch(e)
{
}
}
}
}使用说明:
XXX 是过程名只要调用就可以了
xxx 是你要查找的东东
ooo 是你要显示的格式 是个style类
以上代码未经测试
但可以肯定绝对有错 如果你查找的内容是标签名可能导致文档错误.至于如何区分你自己看着办吧
以上代码是循环body下每个元素
查找每个元素的innerTEXT,判断是否存在你要找的内容
如果存在,则将你要查找的文本用一个<span class="ooo"></span>标签包住
为什么使用2次replace? 因为有可能你查找的东西已经被替换过了,为了防止恢复时可能产生的错误,所以这样替换.
为什么使用try? 因为有些元素不支持innerHTML至于恢复时的代码你就自己写了.
可能产生的错误
当查找的内容包含 < > 等符号的时候可能查找不到,因为innerText和innerHTML的内容不一定一样.
当查找的内容是HTML标签的时候 可能产生严重的错误.
我的意思是,需要像一个文档编辑器一样,就像我们写程序用的IDE,输入关键字var 就变颜色,不是关键字就不变。
不过一般的文本框是没有这个功能的,你要专门定义文本框,你其实可以看到一些源代码的,比如plone项目中网络文本编辑工具,你就是把其中的一般的像什么连接替换之类的改成你需要的关键字替换。