2013-02-10 2 views
0

почему разработчики используют href="javascript:;"Почему разработчики используют href равно javascript?

e.g.:Content в теге:

<a class="anchor" title="title" href="javascript:;" id="someId">...</a> 
+0

это не отправит вас на URL-адрес вместо этого запустит javascript при нажатии – polin

+0

, какой код javascript будет запущен? что произойдет, если href будет пустым? он не будет запускать javascript? – ciochPep

+0

в этом случае он ничего не сделает. – polin

ответ

1

javascript: псевдо-протокол указывает браузеру, что далее следует JavaScript код, который должен выполняться при нажатии на ссылку. Далее в вашем примере будет no-op, и поэтому щелчок по ссылке ничего не делает. Обычно это используется, когда ссылка не используется как ссылка, а скорее как кнопка, где фактическое поведение, которое хочет кодер, задается обработчиком click.

+0

Я вижу. это для браузера или для других разработчиков? Что делает браузер с этой информацией? – ciochPep

+1

Этот ответ правильный, но ему нужно немного больше информации. Использование «javascript:» в 'href' ПРЕДВАРИТИРОВАНИЕ существования обработчиков DOM0, таких как' onclick' и т. Д. Как только 'onclick' существовал,' javascript: 'больше не должен был использоваться. –

+0

@ciochPep: Как я уже сказал, браузер интерпретирует то, что следует за javascript: 'как код JavaScript и выполняет его. В этом случае этот код ничего не делает. Таким образом, вы получаете что-то, что выглядит и действует как ссылка, но не является ссылкой. –

0

из моего опыта использования, если люди используют <a href="www.google.com"> Я могу щелкнуть правой кнопкой и открыть его на новой вкладке. Но если это href=javascript:openLink(), я не могу открыть его на новой вкладке

0

Хороший вопрос. Это так, что их ссылка ничего не делает. Возможно, разработчик добавляет функцию javascript динамически, используя JQuery click event или что-то подобное.

Кажется, что унаследованная дурная привычка есть. Они, вероятно, хотят стиль href, но затем не хотят его функциональности. Вы можете легко сделать это, не используя href. В некотором смысле они говорят «Вот значение для ссылки», а затем сразу же «игнорируют значение для моей ссылки».

Существует хорошее обсуждение здесь: Unobtrusive Javascript

According the the w3schools значение для HREF должно быть URL или скрипт. Когда кто-то делает href="javascript:;"

Они используют скрипт, который ничего не делает. Они просто делают это, чтобы они могли использовать стиль/табуляцию предложений href ... которые, на мой взгляд, должны быть сделаны другим способом, как использование классов css.

Также в соответствии с the w3schools тег не может использовать некоторые другие атрибуты, если href отсутствует, но в HTML5 тег должен использоваться только для гиперссылок.

Смежные вопросы