2012-06-04 30 views

risposta

13

Utilizzando "javascript:" come l'inizio di un attributo href per un link dice al motore javascript di usare il resto della stringa per essere interpretato come javascript. In questo caso, causerebbe un errore di sintassi in interpretazione restrittiva, poiché questa è effettivamente una linea javascript vuota con un punto e virgola di chiusura. Come questo:

; 

maggior parte dei browser non genera un errore, tuttavia, come javascript collegamenti sono sintassi vecchio e dovrebbe essere evitato quando possibile. Potresti tranquillamente usarlo come un link che non fa nulla, tuttavia non lo consiglierei.

Se si desidera un collegamento a non fare nulla, si potrebbe usare questo invece:

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

Utilizzando una stringa vuota href renderà il browser interpreta come un collegamento relativo. Gli URL che non iniziano con un protocollo o un identificatore come un dominio di alto livello o un indirizzo IP saranno trattati come collegamenti relativi. Ad esempio, il collegamento "index.htm" nel dominio "google.com" creerà il collegamento "google.com/index.htm". Allo stesso modo, la stringa href "" creerà il collegamento "google.com/" e quindi le stringhe di href vuote faranno navigare il browser verso una nuova pagina.

Normalmente un collegamento non mostrerà il cursore puntatore o formerà l'elemento come un collegamento se non si specifica un attributo href, questo è quindi possibile utilizzarlo come un elemento di "ancoraggio" a cui è possibile collegarsi utilizzando l'hash personaggio in un URL.Come ad esempio "http://google.com/#an_anchor" vi porterà a un ancoraggio simile a questo: <a id="an_anchor">This is an anchor</a>

Tuttavia è possibile utilizzare i CSS per forzare il link per essere formattato, in questo modo:

CSS:

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

HTML:

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

Esempio: http://jsfiddle.net/J3RfH/

+0

Queste tre ancore faranno sì che la pagina salti in cima alla pagina? – Pingpong

+0

'javascript:;'/';' non è un errore di sintassi. –

0

Non fa nulla ed è pensato per sostituire il comportamento predefinito di a tag per andare da qualche parte con no-op, rendendo collegamento essenzialmente invalicabile.

5

È un non-op.

L'altro modo comune è href="#" ma che richiede il return false nell'evento onclick per evitare di saltare in cima alla pagina e ottenere un # nella barra degli indirizzi.

Nota che di solito è consigliabile avere un collegamento sia con che senza JavaScript, ad esempio, fare qualcosa come <a href="/whatever" onclick="dowhatever(); return false;"> in modo che le persone senza JavaScript aprano semplicemente la pagina nel modo classico mentre le persone con JavaScript ottengono qualsiasi cosa piacevole fatto con JS.

Se qualcosa non dovrebbe funzionare senza JavaScript a tutti, vale a dire non v'è alcun valore utile href, si consideri che non utilizzano il tag a a tutti, ma utilizzare un span con un proprio stile (cursor:pointer e possibilmente sottolineato).

0

se si vuole indicare una qualche funzione dopo : allora sarà chiamata utilizzando <a> tag.But qui non è stato specificato alcuna funzione in modo non accadrà nulla

Problemi correlati