...

пятница, 16 мая 2014 г.

В защиту javascript:void(0);

Намедни я решил посмотреть новости (живу я на Украине) через Google. Нажимаю правой кнопкой на ссылку «другие новости» и в контекстном меню нет пунтка открыть в новом окне. При нажатии через ctrl новая вкладка не открывается. Я решил глянуть исходный код и вижу javascript:void(0);

Для меня это стало новостью, ведь все что читал до этого — было однозначно против такого решения.


Я имею ввиду ситуацию когда ссылка запускает какой-то js код и по прямому назначению не используется, то какую разметку ее лучше использовать.

<a href="javascript:void(0);">...</a>

или

<a href="#">...</a>


Void лучше href="#" поскольку пользователя нет возможности открыть новое окно с тем-же самым документом. Т.е. поведение href="#" при открытии в новом окне для пользователей неожиданно. Если какой-то возможности нет, то ее не должно быть в интерфейсе.


Более того, void «правильней» href=«javascript:void(0);» — ничего не делать. href="#" — перейти в начало страницы.


Чтобы если вдруг стандарт «javascript:» отменят не было коллизий используйте вместе с ним onclick=«return false;». Подсмотрено у Гугл ньюс:


<a onclick="return false;" href="javascript:void(0);">...</a>


Кода, конечно, много, но так удобнее для пользователей.


P.S. под href="#" я подразумевал когда хреф содержит только решетку. Если у вас есть ссылка href="#someMark" и документ нормально реагирует на метку, то void не нужен.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий