Зачем использовать 'href = "javascript: void (0);"' вместо чего-то более удобного для пользователя? - PullRequest
5 голосов
/ 29 августа 2010

Я новичок в веб-дизайне и JavaScript, и я не понимаю, почему веб-дизайнеры часто используют синтаксис void (0) ниже:

 <a onclick="this.blur();return false;" href="javascript:void(0);" class="btn">

Поскольку это отображается в левом нижнем углу браузера, почему бы не найти способ сделать его более удобным для пользователя? Может быть, это потому, что у дизайнеров нет времени, чтобы заняться подобными настройками пользовательского интерфейса.

Что бы вы предложили в качестве альтернативы приведенному выше синтаксису, который был бы более полезен для конечного пользователя?

Ответы [ 2 ]

8 голосов
/ 29 августа 2010

Идеальное решение - опираться на вещи, которые работают .

В этой статье рассматривается прогрессивное усовершенствование с использованием библиотеки javascript библиотеки пользовательского интерфейса Yahoo для улучшения доступности событий взаимодействия, имитируемых javascript.

цитировать: Кристиан Хейлманн

1 голос
/ 29 августа 2010

Если это просто полезность для конечного пользователя, то это может подойти?

<a onclick="this.blur();return false;" href="#Click to hide" class="btn">

, поскольку вы все равно возвращаете false, это может на самом деле содержать что-нибудь

<a onclick="this.blur();return false;" href="Click to hide" class="btn">

Однако я думаю, чтоПричина этого в том, что если у вас отключен JavaScript, это фактически не будет иметь никакого эффекта, в отличие от написания чего-то еще, что будет (первый пример изменит хеш / якорную часть URL-адреса, второй, вероятно, приведет кошибка).В любом случае, они все равно будут выглядеть забавно (с добавлением исходного URL).

Опять же, если эта вещь видна только из-за javascript, я бы сказал, что вперед и предположим, что javascript доступен.Хотя я все еще ошибаюсь на всякий случай и все равно использую хеш ...:)

Редактировать :
Я только что понял, что не все браузеры отображают часть '#'href в строке состояния (любой браузер делает это?), поэтому я бы использовал javascript:void(0); или просто #, если вы ни для чего не используете якоря, и вместо этого установил бы для атрибута title что-то описательное.

Редактировать :
Я думаю, что я был слишком быстр ... Я думаю, что javascript:void действительно, чтобы избежать какого-либо эффекта.Тем не менее, лучшим решением было бы вообще не использовать a -tags (я обычно просто нажимаю onclick на что-либо, на самом деле я обычно использую jquery, и добавляю его к определенным классам или идентификаторам впоследствии).

...