需要以下代码段来捕获我网站的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);
}
答案 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
财产。