Нужно объяснение этого фрагмента кода JavaScript для захвата ссылок - PullRequest
0 голосов
/ 31 октября 2011

Следующий фрагмент кода необходим для захвата html-ссылок на мой сайт. Хотя, похоже, это работает, я хочу получить объяснение, чтобы улучшить его. Может ли кто-нибудь дать мне краткое изложение того, что происходит в этом коде? Я не особенно понимаю оператор while, который использует эту переменную 'link'. Что такое ссылка? Фиктивная переменная какого-то типа, которую вы использовали бы в словаре или итерации карты? Кроме того, зачем использовать 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 Ответ

1 голос
/ 31 октября 2011
 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.

...