需要解释此片段的javascript代码来捕获链接

时间:2011-10-31 02:15:26

标签: javascript hyperlink while-loop tagging

需要以下代码段来捕获我网站的html链接。虽然它似乎有效,但我希望得到一个解释,以便我可以改进它。有人可以快速总结一下这段代码中发生了什么吗?我并不特别理解使用此变量'link'的while语句。什么是“链接”?像在字典或地图迭代中使用的某种虚拟变量?另外,为什么要使用document.links [0]?

 if (document.links){
  if (document.links[0]){
   var links = document.links, link, k=0;
   while(link=links[k++]) {
    link.onclick = linkCapture;
   }
  }
 }

function linkCapture() {
  this.parent = this.parentNode;
  eventCapture('Link Click','Page Tag',this.name,this.href);
}

1 个答案:

答案 0 :(得分:1)

 if (document.links){

浏览器支持该属性:

  if (document.links[0]){

至少有一个链接:

   var links = document.links, link, k=0;

标准初始化

   while(link=links[k++]) {

对于每次循环运行,设置指向下一个元素的链接,然后递增k。当前links[k]是假的时候退出循环(可能是因为我们已经传递了最后一个元素)。

    link.onclick = linkCapture;

将onclick属性设置为linkCapture。

这真的不是很好的代码。您可以使用jQuery编写整个内容,如:

$(document.links).click(linkCapture);

作为奖励,您不会冒险覆盖现有的onclick财产。