关键字高亮显示

Posted on 2007-08-16 16:58 ansenhuang 阅读(68) 评论(0)  编辑  收藏 所属分类: javaScript
<script language=javascript>  
function highlightWord(node,word) {  
  // Iterate into this nodes childNodes  
 
  if (node.hasChildNodes) {  
    var hi_cn;  
    for (hi_cn=0;hi_cn<node.childNodes.length;hi_cn++) {  
      highlightWord(node.childNodes[hi_cn],word);  
    }  
  }  
    
  // And do this node itself  
  if (node.nodeType == 3) { // text node  
    tempNodeVal = node.nodeValue.toLowerCase();  
    tempWordVal = word.toLowerCase();  
    if (tempNodeVal.indexOf(tempWordVal) != -1) {  
      pn = node.parentNode;  
      if (pn.className != "searchword") {  
        // word has not already been highlighted!  
        nv = node.nodeValue;  
        ni = tempNodeVal.indexOf(tempWordVal);  
        // Create a load of replacement nodes  
        before = document.createTextNode(nv.substr(0,ni));  
        docWordVal = nv.substr(ni,word.length);  
        after = document.createTextNode(nv.substr(ni+word.length));  
        hiwordtext = document.createTextNode(docWordVal);  
        hiword = document.createElement("span");  
        hiword.className = "searchword";  
        hiword.appendChild(hiwordtext);  
        pn.insertBefore(before,node);  
        pn.insertBefore(hiword,node);  
        pn.insertBefore(after,node);  
        pn.removeChild(node);  
      }  
    }  
  }  
}  
 
function SearchHighlight() {  
    highlightWord(document.getElementsByTagName("body")[0],'a');  
    highlightWord(document.getElementsByTagName("body")[0],'q');
}  
 
window.onload = SearchHighlight;
 
</script>  
 
 例:
(描述:复制一下代码粘贴到html文件中,直接运行查看效果)
<html>
<head>
<title>asfdsadf</title>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<style type="text/css">
  .searchword {     background-color: red; }
</style>
<script language=javascript>  
function highlightWord(node,word) {  
  // Iterate into this nodes childNodes  
 
  if (node.hasChildNodes) {  
    var hi_cn;  
    for (hi_cn=0;hi_cn<node.childNodes.length;hi_cn++) {  
      highlightWord(node.childNodes[hi_cn],word);  
    }  
  }  
    
  // And do this node itself  
  if (node.nodeType == 3) { // text node  
    tempNodeVal = node.nodeValue.toLowerCase();  
    tempWordVal = word.toLowerCase();  
    if (tempNodeVal.indexOf(tempWordVal) != -1) {  
      pn = node.parentNode;  
      if (pn.className != "searchword") {  
        // word has not already been highlighted!  
        nv = node.nodeValue;  
        ni = tempNodeVal.indexOf(tempWordVal);  
        // Create a load of replacement nodes  
        before = document.createTextNode(nv.substr(0,ni));  
        docWordVal = nv.substr(ni,word.length);  
        after = document.createTextNode(nv.substr(ni+word.length));  
        hiwordtext = document.createTextNode(docWordVal);  
        hiword = document.createElement("span");  
        hiword.className = "searchword";  
        hiword.appendChild(hiwordtext);  
        pn.insertBefore(before,node);  
        pn.insertBefore(hiword,node);  
        pn.insertBefore(after,node);  
        pn.removeChild(node);  
      }  
    }  
  }  
}  
 
function SearchHighlight() {  
    highlightWord(document.getElementsByTagName("body")[0],'a');  
    highlightWord(document.getElementsByTagName("body")[0],'q');
}  
 
window.onload = SearchHighlight;
 
</script>   </head>
<body bgcolor=#ffffff>
<table>
 <tr>
  <td>
   aaaaaabbbbbbaaacc cc bb ss aa bb qq dd
   
  </td>
 </tr> 
</table>
</body>
</html>

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 0, comments - 0, trackbacks - 0, articles - 1

Copyright © ansenhuang