2012-06-04 13 views

Respuesta

13

El uso de "javascript:" como el inicio de un atributo href un enlace le dice al motor de JavaScript que use el resto de la cadena para ser interpretado como javascript. En este caso, causaría un error de sintaxis en una interpretación estricta, ya que esto es efectivamente una línea de JavaScript vacía con un punto y coma de cierre. De esta manera:

; 

mayoría de los navegadores no generará un error, sin embargo, como javascript enlaces son la sintaxis de edad y debe evitarse siempre que sea posible. Puede usarlo de forma segura como un enlace que no hace nada, sin embargo, no lo recomendaría.

Si quieres un enlace a no hacer nada, usted podría utilizar esto en su lugar:

<a href="#">Link</a> 
<a href="javascript:void(0);">Link</a> 
<a href="javascript:return false;">Link</a> 

Usando una cadena href vacío hará que el navegador interpreta como un vínculo relativo. Las URL que no comienzan con un protocolo o un identificador como un dominio de alto nivel o una dirección IP se tratarán como enlaces relativos. Por ejemplo, el enlace "index.htm" en el dominio "google.com" creará el enlace "google.com/index.htm". De la misma manera, la cadena href "" creará el enlace "google.com/" y, por lo tanto, las cadenas href vacías harán que el navegador navegue a una página nueva.

Normalmente, un enlace no mostrará el cursor del puntero ni formateará el elemento como un enlace si no especifica un atributo href, esto es para que pueda usarlo como un elemento "delimitador" al que puede vincular utilizando el hash personaje en una URL.Tal como "http://google.com/#an_anchor" le llevará a un ancla similar a esto: <a id="an_anchor">This is an anchor</a>

Sin embargo, puede utilizar CSS para forzar el enlace para ser formateado, así:

CSS:

a { 
    color: #00c; 
    text-decoration: underline; 
    cursor: pointer; 
} 

HTML:

<a>This is a link.</a> 

Ejemplo: http://jsfiddle.net/J3RfH/

+0

¿Harán esos tres anclajes que la página salte a la parte superior de la página? – Pingpong

+0

'javascript:;'/';' definitivamente no es un error de sintaxis. –

0

No hace nada y está destinado a reemplazar el comportamiento por defecto de a etiqueta para ir a alguna parte con no-op, haciendo de enlace esencialmente no se puede hacer clic.

5

No es una operación.

La otra forma común es href="#" pero eso requiere return false en el evento onclick para evitar saltar al principio de la página y obtener un # en la barra de direcciones.

Tenga en cuenta que generalmente es una buena idea tener un enlace que funcione con y sin JavaScript, es decir, haga algo como <a href="/whatever" onclick="dowhatever(); return false;"> para que las personas sin JavaScript simplemente abran la página de la manera clásica mientras que las personas con JavaScript obtienen hizo con JS.

Si no se supone que algo funcione sin JavaScript en absoluto, es decir, no existe un valor útil href, considere la posibilidad de no utilizar la etiqueta a en absoluto, sino utilizar un span con un estilo propio (y posiblemente cursor:pointer subrayado).

0

si va a especificar alguna función después de : entonces será llamado usando <a> tag.But aquí no se ha especificado ninguna función por lo que no pasará nada

Cuestiones relacionadas