Un enlace debe tener un objetivo HREF que se especificará para permitir que sea un objeto de visualización utilizable.
La mayoría de los navegadores no analizarán JavaScript avanzado en un
<A HREF=""
etiqueta como:
<A href="JavaScript:var elem = document.getElementById('foo');"
debido a que la etiqueta HREF en la mayoría de los navegadores no permite espacios en blanco, o los convertirá en% 20, el equivalente HEX de un ESPACIO, lo que hace que su JavaScript sea absolutamente inútil para el intérprete.
Entonces, si desea usar una etiqueta A HREF para ejecutar JavaScript en línea, debe especificar un valor válido para HREF FIRST que no sea demasiado complejo (no contenga espacios en blanco), y luego proporcionar JavaScript en una etiqueta de atributo de evento como OnClick , OnMouseOver, OnMouseOut, etc.
La respuesta típica es hacer algo como esto:
<A HREF="#" onclick="var elem = document.getElementById('foo');">Get the object</a>
Esto funciona bien pero hace que la página salte a la parte superior debido a que el signo de libra / etiqueta hash le dice que lo haga.
Solo proporcionar un signo de libra / etiqueta hash en una etiqueta A HREF realmente especifica el ancla raíz, que siempre, de forma predeterminada, en la parte superior de la página, puede especificar una ubicación diferente al especificar el atributo NAME dentro de una etiqueta A HREF.
<A NAME='middleofpage'></A>
Luego puede cambiar su etiqueta A HREF para saltar a 'middleofpage' y ejecutar el JavaScript en el evento OnClick, una vez que suceda así:
<A HREF="#middleofpage" onclick="var elem = document.getElementById('foo');">Get the object</a>
Habrá MUCHAS veces en las que no desea que ese enlace salte, por lo que puede hacer dos cosas:
<A HREF="#thislinkname" name='thislinkname' onclick="var elem = document.getElementById('foo');">Get the object</a>
Ahora no irá a ningún lado cuando se haga clic, pero podría hacer que la página se vuelva a centrar desde su ventana gráfica actual. Esto no es lindo. ¿Cuál es la mejor manera de proporcionar JavaScript en línea, usando un HREF A, pero sin tener que hacer nada de lo anterior? JavaScript: nulo (0);
<A HREF="JavaScript:void(0);" onclick="var elem = document.getElementById('foo');">Get the object</a>
Esto le dice al navegador que NO VAYA AQUÍ, sino que ejecute el JavaScript válido: void (0); funciona primero en la etiqueta HREF porque no contiene espacios en blanco y no se analizará como una URL. En su lugar, será ejecutado por el compilador. VOID es una palabra clave que, cuando se suministra con un perameter de 0, devuelve UNDEFINED, que no utiliza más recursos para manejar un valor de retorno que ocurriría sin especificar el 0 (es más amigable con el manejo de la memoria / rendimiento).
Lo siguiente que sucede es que se ejecuta OnClick. La página no se mueve, no ocurre nada en la pantalla.
javascript:
es uno de los muchos esquemas de URI: en.wikipedia.org/wiki/URI_scheme , comodata:
.