分享
 
 
 

使用 javascript HTML DOM 高亮显示页面特定字词 By shawl.qiu

王朝html/css/js·作者佚名  2006-11-13
窄屏简体版  字體: |||超大  

使用 javascript HTML DOM 高亮显示页面特定字词 By shawl.qiu

说明:

这个主要应用于搜索结果上, 高亮显示搜索到的相关词句.

写这个函数主要是前几天在CSDN社区JS版一个网友有这么一个需求, 当时草草写了一个简单点的函数实现高亮显示页面特定词句.

不过后来发现这个功能很不错, 就找时间完善了一下.

最后效果还行, 唯一不足的地方在于高亮显示的时候, 同一个词可能会有多种颜色.

其实要一个词只显示一个颜色并不难, 不过那要耗费更多的代码去判断, 因此也就不完善该功能呢.

函数 fHl(o, flag, rndColor, url) 参数说明:

linenum

/*----------------------------------------*\

* 使用 javascript HTML DOM 高亮显示页面特定字词 By shawl.qiu

* 参数说明:

* o: 对象, 要进行高亮显示的对象.

* flag: 字符串, 要进行高亮的词或多个词, 使用 竖杠(|) 分隔多个词 .

* rndColor: 布尔值, 是否随机显示文字背景色与文字颜色, true 表示随机显示.

* url: URI, 是否对高亮的词添加链接.

\*----------------------------------------*/

shawl.qiu

2006-11-12

http://blog.csdn.net/btbtd

函数 fHl(o, flag, rndColor, url) 源码及使用演示:

linenum

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns=" http://www.w3.org/1999/xhtml">

<!-- DW6 -->

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>shawl.qiu template</title>

<script type="text/javascript">

//<![CDATA[

onload=function(){

fHl(document.body, '纸伞|她');

fHl(document.body, '丁香|雨巷', true);

fHl(document.body, '希望|愁怨', false, '/');

fHl(document.getElementById('at_main'), '独自|飘过|悠长', true, '/');

/* fHl(document.body, '纸伞');

fHl(document.body, '她', false, '/');

fHl(document.body, '丁香', true, '/');

fHl(document.body, '雨巷', true, '/');

fHl(document.body, '希望', false);

fHl(document.body, '愁怨', true); */

/* fHl(document.body, '丁香', 'blue', 'white', '/');

fHl(document.body, '雨巷', 'gray', 'white', '/');

fHl(document.body, '独自', 'white', 'red');

fHl(document.body, '悠长', 'white', 'red');

fHl(document.body, '飘过'); */

}

/*----------------------------------------*\

* 使用 javascript HTML DOM 高亮显示页面特定字词 By shawl.qiu

* 参数说明:

* o: 对象, 要进行高亮显示的对象.

* flag: 字符串, 要进行高亮的词或多个词, 使用 竖杠(|) 分隔多个词 .

* rndColor: 布尔值, 是否随机显示文字背景色与文字颜色, true 表示随机显示.

* url: URI, 是否对高亮的词添加链接.

\*----------------------------------------*/

//--------begin function fHl(o, flag, rndColor, url)------------------//

function fHl(o, flag, rndColor, url){

var bgCor=fgCor='';

if(rndColor){

bgCor=fRndCor(10, 20);

fgCor=fRndCor(230, 255);

} else {

bgCor='yellow';

fgCor='black';

}

var re=new RegExp(flag, 'i');

for(var i=0; i<o.childNodes.length; i++){

var o_=o.childNodes[i];

var o_p=o_.parentNode;

if(o_.nodeType==1) {

fHl(o_, flag, rndColor, url);

} else if (o_.nodeType==3) {

if(!(o_p.nodeName=='A')){

if(o_.data.search(re)==-1)continue;

var temp=fEleA(o_.data, flag);

o_p.replaceChild(temp, o_);

}

} // shawl.qiu script

}

//------------------------------------------------

function fEleA(text, flag){

var style=' style="background-color:'+bgCor+';color:'+fgCor+';" '

var o=document.createElement('span');

var str='';

var re=new RegExp('('+flag+')', 'gi');

if(url){

str=text.replace(re, '<a href="'+url+

'"'+style+'>$1</a>');

} else {

str=text.replace(re, '<span '+style+'>$1</span>');

}

o.innerHTML=str;

return o;

} // shawl.qiu script

//------------------------------------------------

function fRndCor(under, over){

if(arguments.length==1){

var over=under;

under=0;

}else if(arguments.length==0){

var under=0;

var over=255;

}

var r=fRandomBy(under, over).toString(16);

r=padNum(r, r, 2);

var g=fRandomBy(under, over).toString(16);

g=padNum(g, g, 2);

var b=fRandomBy(under, over).toString(16);

b=padNum(b, b, 2);

//defaultStatus=r+' '+g+' '+b

return '#'+r+g+b;

function fRandomBy(under, over){

switch(arguments.length){

case 1: return parseInt(Math.random()*under+1);

case 2: return parseInt(Math.random()*(over-under+1) + under);

default: return 0;

}

} // shawl.qiu script

function padNum(str, num, len){

var temp=''

for(var i=0; i<len;temp+=num, i++);

return temp=(temp+=str).substr(temp.length-len);

} // shawl.qiu script

}

} // shawl.qiu script

//--------end function fHl(o, flag, rndColor, url)--------------------//

//]]>

</script>

</head>

<body>

<div class="at_main" id="at_main"><p/><b>CITE:</b><cite><div class=u_cite>戴望舒写女孩<br/>

<br/>

&nbsp;雨 巷&nbsp;<br/>

撑着油纸伞,独自&nbsp;<br/>

彷徨在悠长、悠长&nbsp;<br/>

又寂寥的雨巷,&nbsp;<br/>

我希望逢着&nbsp;<br/>

一个丁香一样地&nbsp;<br/>

结着愁怨的姑娘。&nbsp;<br/>

她是有&nbsp;<br/>

丁香一样的颜色,&nbsp;<br/>

丁香一样的芬芳,&nbsp;<br/>

丁香一样的忧愁,&nbsp;<br/>

在雨中哀怨,&nbsp;<br/>

哀怨又彷徨;&nbsp;<br/>

她彷徨在这寂寥的雨巷,&nbsp;<br/>

撑着油纸伞&nbsp;<br/>

像我一样,&nbsp;<br/>

像我一样地&nbsp;<br/>

默默踟躇着&nbsp;<br/>

冷漠、凄清,又惆怅。&nbsp;<br/>

她默默地走近,&nbsp;<br/>

走近,又投出&nbsp;<br/>

叹息一般的眼光&nbsp;<br/>

她飘过&nbsp;<br/>

像梦一般地,&nbsp;<br/>

像梦一般地凄婉迷茫。&nbsp;<br/>

像梦中飘过&nbsp;<br/>

一枝丁香地,&nbsp;<br/>

我身旁飘过这个女郎;&nbsp;<br/>

她默默地远了,远了,&nbsp;<br/>

到了颓圮的篱墙,&nbsp;<br/>

走尽这雨巷。&nbsp;<br/>

在雨的哀曲里,&nbsp;<br/>

消了她的颜色,&nbsp;<br/>

散了<a href="/">她</a>的芬芳,&nbsp;<br/>

消散了,甚至她的&nbsp;<br/>

叹息般的眼光&nbsp;<br/>

丁香般的惆怅。&nbsp;<br/>

撑着油纸伞,独自&nbsp;<br/>

彷徨在悠长、悠长&nbsp;<br/>

又寂寥的雨巷,&nbsp;<br/>

我希望飘过&nbsp;<br/>

一个丁香一样地&nbsp;<br/>

结着愁怨的姑娘。</div></cite></div>

<span class="left160px"><a href="article.asp?classid=14&nclassid=178&articleid=12830#anchor">戴望舒写女孩</a><br/><a href="article.asp?classid=14&nclassid=178&articleid=12819#anchor">悲惨世界 - 第四部 卜吕梅街的儿女情和圣德尼街的英雄血 - 第五卷结尾不象开头 - 四石头下面的一颗心</a><br/><a href="article.asp?classid=14&nclassid=178&articleid=12835#anchor">青玉案&nbsp;元夕</a><br/><a href="article.asp?classid=14&nclassid=178&articleid=12855#anchor">“科学精神”语义分析</a><br/><a href="article.asp?classid=14&nclassid=178&articleid=3053#anchor">再别康桥 --徐志摩</a><br/><a href="article.asp?classid=14&nclassid=178&articleid=12862#anchor">学术论文格式</a><br/><a href="article.asp?classid=14&nclassid=178&articleid=12836#anchor">一棵开花的树</a><br/><a href="article.asp?classid=14&nclassid=178&articleid=12840#anchor">书信写作格式</a><br/><a href="article.asp?classid=14&nclassid=178&articleid=12818#anchor">悲惨世界 - 第四部 卜吕梅街的儿女情和圣德尼街的英雄血 - 第十二卷科林斯 - 六等待</a><br/><a href="article.asp?classid=14&nclassid=178&articleid=12834#anchor">卿云歌</a></span>

</body>

</html>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有