Использование протокола javascript:
влияет на доступность, а также вредит SEO-дружественности вашей страницы.
Обратите внимание, что HTML означает Hypter Text something something ... Hyper Text обозначает текст со ссылками и ссылками в нем, для чего используется элемент привязки <a>
.
Когда вы используете javascript:
'протокол', вы неправильно используете элемент привязки. Поскольку вы неправильно используете элемент <a>
, такие вещи, как Google Bot и программа чтения с экрана Jaws, будут иметь проблемы с «пониманием» вашей страницы, поскольку они не очень заботятся о вашем JS, но очень заботятся о Hyper Text ML, обращая особое внимание якоря hrefs
.
Это также влияет на удобство использования вашей страницы, когда пользователь, у которого не включен JavaScript, посещает вашу страницу; вы нарушаете ожидаемую функциональность и поведение ссылок для этих пользователей. Он будет выглядеть как ссылка, но не будет действовать как ссылка, поскольку использует протокол javascript
.
Вы можете подумать: «Но у скольких людей сейчас отключен JavaScript?» но мне нравится формулировать эту идею в большей степени: «Скольким потенциальным клиентам я готов отвергнуть только из-за флажка в настройках их браузеров?»
Все сводится к тому, что href
является атрибутом HTML и как таковой принадлежит информации вашего сайта, а не его поведению. JavaScript определяет поведение, но вы никогда не хотите, чтобы он мешал данным / информации. Воплощением этой идеи мог бы быть внешний файл JavaScript; не использовать onclick
как атрибут, а вместо этого как обработчик событий в вашем файле JavaScript.
person
Richard JP Le Guen
schedule
19.03.2010
unobtrusive javascript
иprogressive enhancement
, чтобы найти лучшие практики .. - person Gabriele Petrioli   schedule 19.03.2010<a>
, чтобы притвориться ссылкой на страницу, когда на самом деле это всего лишь триггер для действия JS. Я бы подумал об использовании<span class="js-trigger">Press me</span>
и отделении соответствующего кода javascript, поместив его в отдельный файл JS. - person Adrien Be   schedule 23.04.2014