正文

[JavaScript]遍历HTML文档获得所有超链接2006-11-30 16:31:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/fengfei/21091.html

分享到:

利用这个原理可以遍历一个网站的所有超链接,并获得该链接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来获得指定标记的节点.. 这样就不需要递归,可以简单很多。。


 

阅读(7593) | 评论(5)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册