He visto el siguiente href usado en páginas web de vez en cuando. Sin embargo, no entiendo qué está tratando de hacer esto o la técnica. ¿Alguien puede elaborar por favor?
<a href="javascript:;"></a>
javascript
John Livermore
fuente
fuente
javascript:
esquema donde no debería usarse (onclick="javascript:…"
)Respuestas:
Un
<a>
elemento es HTML no válido a menos que tenga un atributohref
oname
.Si desea que se represente correctamente como un enlace (es decir, subrayado, puntero de mano, etc.), solo lo hará si tiene un
href
atributo.Por lo tanto, un código como este a veces se usa como una forma de hacer un enlace, pero sin tener que proporcionar una URL real en el
href
atributo. El desarrollador obviamente quería que el enlace en sí no hiciera nada, y esta era la forma más fácil que sabía.Probablemente tiene algún código de evento de JavaScript en otro lugar que se activa cuando se hace clic en el enlace, y eso será lo que realmente quiere que suceda, pero quiere que se vea como un
<a>
enlace de etiqueta normal .Algunos desarrolladores usan
href='#'
para el mismo propósito, pero esto hace que el navegador salte a la parte superior de la página, lo que puede no ser deseado. Y no podía simplemente dejar el href en blanco, porquehref=''
es un enlace a la página actual (es decir, causa una actualización de la página).Hay formas de evitar estas cosas. El uso de un fragmento de código Javascript vacío en el
href
es uno de ellos, y aunque no es la mejor solución, funciona.fuente
return false;
o sievent.preventDefault()
lahref
acción nunca se llamará, por lo que puede poner algo más sensible allí.<a>
sinhref
oname
no es inválido; Esto se puede verificar fácilmente con un validador.#
fragmento , eso nunca se envía al servidor web (o, por lo tanto, al firewall); solo lo usa internamente el navegador. En este caso, hacer clic en un enlace etiquetado con<a href="#">
...</a>
no hará que su navegador envíe solicitudes HTTP a ningún lado; todo lo que hará es desplazarse hasta la parte superior de la página.Básicamente, en lugar de usar el enlace para mover páginas (o anclas), el uso de este método lanza una función o funciones de JavaScript
Al hacer clic en el enlace, se activará la alerta.
fuente
Existen varios mecanismos para evitar que un enlace llegue a su destino. El de la pregunta no es muy intuitivo.
Una opción más limpia es usar
href="#no"
where#no
es un ancla no definida en el documento.Puede usar un nombre más semántico como #disable o #action para aumentar la legibilidad.
Beneficios del enfoque:
Inconvenientes:
Dado que el
<a>
elemento no actúa como un enlace, la mejor opción en estos casos no es usar un<a>
elemento sino un<div>
y proporcionar el estilo de enlace deseado.fuente
es solo una abreviatura de:
fuente
Es una forma de hacer que un enlace no haga absolutamente nada cuando se hace clic (a menos que los eventos de Javascript estén vinculados a él).
Es una forma de ejecutar Javascript en lugar de seguir un enlace:
Cuando en realidad no hay javascript para ejecutar (como su ejemplo), no hace nada.
fuente
Consulte esto:
fuente
javascript:
le dice al navegador que va a escribir código javascriptfuente
Hilo antiguo, pero pensé que solo agregaría que la razón por la que los desarrolladores usan esta construcción no es para crear un enlace muerto, sino porque las URL de JavaScript por alguna razón no pasan referencias al elemento html activo correctamente.
Por ejemplo,
handler_function(this.id)
funciona comoonClick
pero no como una URL de JavaScript.Por lo tanto, es una opción entre escribir código pedagógicamente compatible con los estándares que implica que tenga que ajustar manualmente la llamada para cada hipervínculo, o un código ligeramente no estándar que se puede escribir una vez y usar en todas partes.
fuente
Por lo tanto, se usa para escribir códigos js dentro de los
href
oyentes de eventosonclick
y evitar#
enlaceshref
para hacer que lasa
etiquetas sean válidas para html.Tuve una investigación sobre cómo usar
javascript:
dentro delhref
atributo.A través de este código, incluso puede escribir códigos js allí en lugar de solo llamar a funciones.
Probado en Chrome versión 68.0.3440.106 (versión oficial) (64 bits)
Probado en Firefox Quantom 61.0.1 (64 bits)
fuente
La mejor manera de representar siempre un enlace correctamente es con el CSS de la siguiente manera:
Uno debe evitar seguir cosas innecesarias como las mencionadas en el hilo.
fuente