javascript实现指定区域热词链接效果
javascript实现指定区域热词链接效果
html中div class=con 的区域是要实现热词链接的内容。
1 |
<div class="con">大众网 山东新闻第一网 网友生活圈</div> |
相应的js脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
var allow_keyword = '1'; var url = new Array(); //定义需要添加的关键词 //url['山东'] = 'http://sd.dzwww.com/'; url['大众网'] = 'http://www.dzwww.com/'; var objs = document.getElementsByTagName('div'); var textArea = new Array(); var __index = 0; if (objs && allow_keyword != '0') { for (i = 0; i < objs.length; i++) { if (objs[i].className == 'con' || objs[i].className == 'GuideContentInner' || objs[i].className == 'ReplyContent' ) { textArea[textArea.length] = objs[i]; //定义在哪里启用 } } } function __replaceAll() { if (textArea.length > __index && allow_keyword != '0') { var temp = textArea[__index].innerHTML; var searchEngine='http://www.baidu.com/s?word='; //定义前缀 for(var keyword in url) { var regex = new RegExp('(' + keyword + ')','i'); if(url[keyword]==''){ url[keyword]=searchEngine+keyword; } var targeturl=url[keyword]; if(targeturl.indexOf("CN")>0){ //查链接中是否有“?”,有则加后缀 “&from=forum48” targeturl=targeturl+'&lr='; }else{ targeturl=targeturl+''; } var searchText = "<a href=\"" + targeturl +"\" target=\"_blank\" class=\"ReplaceKeyword\">$1</a>" //添加链接的模板 temp = temp.replace(regex, searchText); } textArea[__index].innerHTML = temp; __index = __index + 1; setTimeout('__replaceAll()', 500); } } if (allow_keyword != '0') { __replaceAll(); } |
需要增加关键词时只需增加数组:
1 2 3 |
url['大众网'] = 'http://www.dzwww.com/'; url['山东'] = 'http://sd.dzwww.com/'; url['体育'] = 'http://sports.dzwww.com/'; |
这里需要说明一下的是,如果数组赋值为空,如url[‘山东’] = ”;则链接会自动替换为百度搜索的链接地址,形如:
http://www.baidu.com/s?word=山东