Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > есть вопрос


Автор: 0x00 1.9.2010, 13:48
возник вопрос.
с коллегой написали один и тот-же по функциональности код (замена target ссылки на странице, если ссылка на другой хост).
итак, какой код изящней по вашему мнению?

ВАРИАНТ1
Код

for(var i = 0; i < document.links.length; i++){
  if(!(document.links[i].href.toString().indexOf(location.hostname) + 1))
    document.links[i].target = '_blank';
}


ВАРИАНТ2
Код

  lh = location.hostname.match(/[a-zA-Z0-9\-]+\.[a-z]{2,5}$/);
  for(var i = 0; document.links[i]; i++) {
    ah = document.links[i].hostname.match(/[a-zA-Z0-9\-]+\.[a-z]{2,5}$/);
      if (ah.toString() != lh.toString()) {
        document.links[i].target = '_blank';
      }
  }

Автор: ksnk 1.9.2010, 16:25
Стоит поставить адрес http://xxx.com/mysite.com и проверить что скажут оба варианта. ;)

Первый вариант, конечно, компактнее. Хотя мне кажется, что так
Код

if(document.links[i].hostname!=location.hostname){
 ...
}

будет еще проще и правильнее. 

А в чем видится преимущество второго варианта? Обилие регулярок вряд ли скажется положительным образом на скорострельности...  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)