Vi o seguinte href usado em páginas da web de tempos em tempos. No entanto, não entendo o que isso está tentando fazer ou a técnica. Alguém pode elaborar por favor?
<a href="javascript:;"></a>
javascript
John Livermore
fonte
fonte
javascript:
esquema de onde ele não deve ser usado (onclick="javascript:…"
)Respostas:
Um
<a>
elemento é HTML inválido, a menos que tenha um atributohref
ouname
.Se você deseja que ele seja renderizado corretamente como um link (por exemplo, sublinhado, ponteiro de mão, etc.), o fará somente se tiver um
href
atributo.Um código como esse é, portanto, às vezes usado como uma maneira de criar um link, mas sem a necessidade de fornecer uma URL real no
href
atributo. Obviamente, o desenvolvedor queria que o link não fizesse nada, e essa era a maneira mais fácil que ele conhecia.Ele provavelmente tem algum código de evento javascript em outro lugar que é acionado quando o link é clicado, e é isso que ele realmente quer que aconteça, mas ele quer que pareça um
<a>
link de tag normal .Alguns desenvolvedores usam
href='#'
para o mesmo objetivo, mas isso faz com que o navegador pule para o topo da página, o que pode não ser desejado. E ele não podia simplesmente deixar o href em branco, porquehref=''
é um link para a página atual (ou seja, causa uma atualização da página).Existem maneiras de contornar essas coisas. Usar um pedaço vazio de código Javascript no
href
é um deles e, embora não seja a melhor solução, ele funciona.fonte
return false;
ouevent.preventDefault()
então ahref
ação nunca será chamada, para que você possa colocar algo mais sensato nela.<a>
semhref
ouname
não é inválido; isso pode ser verificado facilmente usando um validador.#
fragmento , isso nunca será enviado ao servidor da Web (ou, portanto, ao firewall); é usado apenas internamente pelo navegador. Nesse caso, clicar em um link marcado com<a href="#">
...</a>
não fará com que seu navegador envie solicitações HTTP em qualquer lugar; tudo o que fará é rolar para o topo da página.basicamente, em vez de usar o link para mover páginas (ou âncoras), esse método inicia uma função javascript
clicar no link acionará o alerta.
fonte
Existem vários mecanismos para evitar um link para chegar ao seu destino. O da questão não é muito intuitivo.
Uma opção mais limpa é usar
href="#no"
onde#no
há uma âncora não definida no documento.Você pode usar um nome mais semântico, como #disable, ou #action para aumentar a legibilidade.
Benefícios da abordagem:
Desvantagens:
Como o
<a>
elemento não está atuando como um link, a melhor opção nesses casos não é usar um<a>
elemento, mas a<div>
e fornecer o estilo de link desejado.fonte
é apenas uma abreviação para:
fonte
É uma maneira de fazer um link não fazer absolutamente nada quando clicado (a menos que os eventos Javascript estejam vinculados a ele).
É uma maneira de executar Javascript em vez de seguir um link:
Quando não há realmente javascript para executar (como o seu exemplo), ele não faz nada.
fonte
Consulte o seguinte:
fonte
javascript:
informa ao navegador que escreverá o código javascriptfonte
Tópico antigo, mas pensei em acrescentar que o motivo pelo qual os desenvolvedores usam essa construção não é criar um link morto, mas porque URLs javascript, por algum motivo, não passam referências ao elemento html ativo corretamente.
por exemplo,
handler_function(this.id)
funciona comoonClick
um URL javascript , mas não como.Portanto, é uma escolha entre escrever código compatível com padrões pedanticamente, que envolve a necessidade de ajustar manualmente a chamada para cada hiperlink ou código ligeiramente fora do padrão que pode ser escrito uma vez e usado em qualquer lugar.
fonte
Portanto, é usado para escrever códigos js dentro de, em
href
vez de ouvintes de eventos,onclick
e evitar#
linkshref
para tornar asa
tags válidas para html.Eu fiz uma pesquisa sobre como usar
javascript:
dentro dohref
atributo.Através desse código, você pode até escrever códigos js lá, em vez de apenas chamar funções.
Testado no chrome Versão 68.0.3440.106 (versão oficial) (64 bits)
Testado no Firefox Quantom 61.0.1 (64 bits)
fonte
A melhor maneira de sempre renderizar um link corretamente é com o css da seguinte maneira:
Deve-se evitar seguir coisas desnecessárias como as mencionadas no tópico.
fonte