Я видел время, время от времени используемое в веб-страницах: href. Тем не менее, я не понимаю, что это делается, или техники. Может кто-нибудь уточнить, пожалуйста?
<a href="javascript:;"></a>
Я видел время, время от времени используемое в веб-страницах: href. Тем не менее, я не понимаю, что это делается, или техники. Может кто-нибудь уточнить, пожалуйста?
<a href="javascript:;"></a>
Элемент <a>
является недопустимым HTML, если он не имеет атрибут href
или name
.
Если вы хотите, чтобы он правильно отображался как ссылка (т.е. подчеркнутый, указатель руки и т.д.), тогда он будет делать это только в том случае, если он имеет атрибут href
.
Подобный код иногда используется как способ создания ссылки, но без необходимости указывать фактический URL-адрес в атрибуте href
. Разработчик явно хотел, чтобы сама ссылка не делала ничего, и это был самый простой способ, который он знал.
Вероятно, у него есть код события javascript в другом месте, который запускается при нажатии ссылки, и это будет то, что он хочет на самом деле, но он хочет, чтобы он выглядел как обычная ссылка тега <a>
.
Некоторые разработчики используют href='#'
для этой же цели, но это приводит к тому, что браузер переходит к началу страницы, что может и не понадобиться. И он не мог просто оставить href пустым, потому что href=''
является ссылкой на текущую страницу (т.е. Вызывает обновление страницы).
Есть способы обойти эти вещи. Использование пустого фрагмента кода Javascript в href
является одним из них, и хотя это не лучшее решение, оно работает.
Существует несколько механизмов, позволяющих избежать ссылки для достижения цели. Один из вопросов не слишком интуитивный.
Более чистым вариантом является использование href="#no"
, где #no
- неопределенный якорь в документе.
Вы можете использовать более семантическое имя, например #disable, или #action для повышения удобочитаемости.
Преимущества подхода:
Недостатки:
Поскольку элемент <a>
не действует как ссылка, лучшим вариантом в этих случаях является не использование элемента <a>
, а <<24 > и предоставление желаемого стиля в стиле ссылки.
в основном вместо того, чтобы использовать ссылку для перемещения страниц (или якорей), с помощью этого метода запускается функция (-ы) javascript
<script>
function doSomething() {
alert("hello")
}
</script>
<a href="javascript:doSomething();">click me</a>
щелчок по ссылке приведет к срабатыванию предупреждения.
<a href="javascript:alert('Hello');"></a>
просто сокращается для:
<a href="" onclick="alert('Hello'); return false;"></a>
Обратитесь к этому:
<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>
Старый поток, но я думал, что просто добавлю, что причина, по которой разработчики используют эту конструкцию, заключается не в создании мертвой ссылки, а потому, что URL-адреса javascript по какой-то причине не передают ссылки на активный элемент html правильно.
например. handler_function(this.id)
работает как onClick
, но не как URL-адрес JavaScript.
Таким образом, это выбор между написанием стандартно-совместимого со стандартами кода, который включает в себя необходимость вручную настроить вызов для каждой гиперссылки или немного нестандартного кода, который можно написать один раз и использовать везде.
Это способ сделать ссылку абсолютно ничего при щелчке (если только события Javascript не привязаны к ней).
Это способ запуска Javascript вместо ссылки:
<a href="Javascript: doStuff();">link</a>
Когда на самом деле не работает javascript (например, ваш пример), он ничего не делает.
Лучший способ всегда правильно отображать ссылку - с помощью css следующим образом:
a {cursor: pointer !important}
Следует избегать использования ненужных вещей, подобных упомянутым в потоке.
<a href="javascript:void(0);"></a>
javascript:
сообщает браузеру, что он будет писать код javascript