Что делает выражение href ?

Я видел время, время от времени используемое в веб-страницах: href. Тем не менее, я не понимаю, что это делается, или техники. Может кто-нибудь уточнить, пожалуйста?

<a href="javascript:;"></a>

Ответ 1

Элемент <a> является недопустимым HTML, если он не имеет атрибут href или name.

Если вы хотите, чтобы он правильно отображался как ссылка (т.е. подчеркнутый, указатель руки и т.д.), тогда он будет делать это только в том случае, если он имеет атрибут href.

Подобный код иногда используется как способ создания ссылки, но без необходимости указывать фактический URL-адрес в атрибуте href. Разработчик явно хотел, чтобы сама ссылка не делала ничего, и это был самый простой способ, который он знал.

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

Некоторые разработчики используют href='#' для этой же цели, но это приводит к тому, что браузер переходит к началу страницы, что может и не понадобиться. И он не мог просто оставить href пустым, потому что href='' является ссылкой на текущую страницу (т.е. Вызывает обновление страницы).

Есть способы обойти эти вещи. Использование пустого фрагмента кода Javascript в href является одним из них, и хотя это не лучшее решение, оно работает.

Ответ 2

Существует несколько механизмов, позволяющих избежать ссылки для достижения цели. Один из вопросов не слишком интуитивный.

Более чистым вариантом является использование href="#no", где #no - неопределенный якорь в документе.

Вы можете использовать более семантическое имя, например #disable, или #action для повышения удобочитаемости.

Преимущества подхода:

  • Избегает эффекта "перемещение вверх" пустого href= "#"
  • Избегает использования javascript

Недостатки:

  • Вы должны быть уверены, что имя привязки не используется в документе.

Поскольку элемент <a> не действует как ссылка, лучшим вариантом в этих случаях является не использование элемента <a>, а <<24 > и предоставление желаемого стиля в стиле ссылки.

Ответ 3

в основном вместо того, чтобы использовать ссылку для перемещения страниц (или якорей), с помощью этого метода запускается функция (-ы) javascript

<script>
function doSomething() {
  alert("hello")
}
</script>
<a href="javascript:doSomething();">click me</a>

щелчок по ссылке приведет к срабатыванию предупреждения.

Ответ 4

<a href="javascript:alert('Hello');"></a>

просто сокращается для:

<a href="" onclick="alert('Hello'); return false;"></a>

Ответ 5

Обратитесь к этому:

<a href="Http://WWW.stackoverflow.com">Link to the website opened in different tab</a>
<a href="#MyDive">Link to the div in the page(look at the chaneged url)</a>
<a href="javascript:;">Nothing happens if there is no javaScript to render</a>

Ответ 6

Старый поток, но я думал, что просто добавлю, что причина, по которой разработчики используют эту конструкцию, заключается не в создании мертвой ссылки, а потому, что URL-адреса javascript по какой-то причине не передают ссылки на активный элемент html правильно.

например. handler_function(this.id) работает как onClick, но не как URL-адрес JavaScript.

Таким образом, это выбор между написанием стандартно-совместимого со стандартами кода, который включает в себя необходимость вручную настроить вызов для каждой гиперссылки или немного нестандартного кода, который можно написать один раз и использовать везде.

Ответ 7

Это способ сделать ссылку абсолютно ничего при щелчке (если только события Javascript не привязаны к ней).

Это способ запуска Javascript вместо ссылки:

<a href="Javascript: doStuff();">link</a>

Когда на самом деле не работает javascript (например, ваш пример), он ничего не делает.

Ответ 8

Лучший способ всегда правильно отображать ссылку - с помощью css следующим образом:

a {cursor: pointer !important}

Следует избегать использования ненужных вещей, подобных упомянутым в потоке.

Ответ 9

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

javascript: сообщает браузеру, что он будет писать код javascript