利用这个原理可以遍历一个网站的所有超链接,并获得该链接HTML文档的关键字,然后再遍历该文档以获得该文档的超链接, 如此递归下去,可以做成个简单的搜索引擎。。不过不知道效率如何。 演示地址:http://scboy.ik8.com/GetAllLinks.htm <html><head><title> getAllLink</title> <script language="javascript"> var elementName = ""; // 全局变量,保存超链接地址,用完要清空 function getAllLink( node ) { var total = 0; // 计算总共有多少超链接 // nodeType 判断该节点是否为元素节点,1表示为元素节点 // tagName 判断该节点是否是超链接 if ( node.nodeType == 1 && node.tagName == "A" ) { total += 1; // 超链接总数加1 // 保存超链接的地址 // node.getAttribute("href")获得该属性的值 elementName = elementName + node.getAttribute("href") + "\r\n"; } // 获得node的全部子节点 var children = node.childNodes; for ( var i = 0; i < children.length; i++ ) { // 在每个子节点上进行递归操作,以遍历HTML文档所有节点 total += getAllLink( children[i] ); } return total; // 返回该节点超链接个数 } </script> </head> <body> <a href="javascript:void(0)" onClick="alert('超链接总数:' + getAllLink(document) + '\r\n 全部超链接地址如下: \r\n' + elementName); elementName='';"> 开始统计超链接个数 </a> <br><br><hr> <a href="http://www.yaoyuan.com"> yaoyuan </a> <br> <a href="http://www.163.com"> 163 </a> <br> <a href="http://fengfei.programfan.com"> 风飞BLOG </a> <br> </body> </html> 当然也可以通过getElementByTagName来获得指定标记的节点.. 这样就不需要递归,可以简单很多。。

评论