Un collegamento deve avere un target HREF da specificare per abilitarlo come oggetto di visualizzazione utilizzabile.
La maggior parte dei browser non analizzerà JavaScript avanzato in un
<A HREF=""
tag come:
<A href="JavaScript:var elem = document.getElementById('foo');"
perché il tag HREF nella maggior parte dei browser non consente gli spazi bianchi o convertirà gli spazi bianchi in% 20, l'equivalente HEX di uno SPAZIO, che rende JavaScript assolutamente inutile per l'interprete.
Quindi, se si desidera utilizzare un tag A HREF per eseguire JavaScript incorporato, è necessario specificare un valore valido per HREF FIRST che non sia troppo complesso (non contiene spazi bianchi) e quindi fornire JavaScript in un tag dell'attributo evento come OnClick , OnMouseOver, OnMouseOut, ecc.
La risposta tipica è fare qualcosa del genere:
<A HREF="#" onclick="var elem = document.getElementById('foo');">Get the object</a>
Funziona bene, ma fa saltare la pagina all'inizio a causa del segno cancelletto / tag hash che gli dice di farlo.
Basta fornire un segno cancelletto / tag hash in un tag A HREF in realtà specifica l'ancoraggio radice, che è sempre, per impostazione predefinita, la parte superiore della pagina, è possibile specificare una posizione diversa utilizzando specificando l'attributo NAME all'interno di un tag A HREF.
<A NAME='middleofpage'></A>
È quindi possibile modificare il tag A HREF per passare a "middleofpage" ed eseguire il JavaScript nell'evento OnClick, una volta che ciò accada in questo modo:
<A HREF="#middleofpage" onclick="var elem = document.getElementById('foo');">Get the object</a>
Ci saranno MOLTE volte in cui non vuoi che quel link salti in giro, quindi puoi fare due cose:
<A HREF="#thislinkname" name='thislinkname' onclick="var elem = document.getElementById('foo');">Get the object</a>
Ora non andrà da nessuna parte quando si fa clic, ma potrebbe far ricentrare la pagina dalla finestra corrente. Questo non è carino. Qual è il modo migliore per fornire javascript in linea, usando un A HREF, ma senza dover fare nulla di quanto sopra? Javascript: void (0);
<A HREF="JavaScript:void(0);" onclick="var elem = document.getElementById('foo');">Get the object</a>
Questo dice al browser di andare ORA QUI, ma invece esegue il JavaScript valido: void (0); funziona prima nel tag HREF perché non contiene spazi bianchi e non verrà analizzato come URL. Verrà invece eseguito dal compilatore. VOID è una parola chiave che, se fornita con un perametro di 0, restituisce UNDEFINED, che non utilizza più risorse per gestire un valore di ritorno che si verificherebbe senza specificare lo 0 (è più gestione della memoria / prestazioni ottimali).
La prossima cosa che succede è che OnClick viene eseguito. La pagina non si sposta, non succede nulla in termini di visualizzazione.
javascript:
è uno dei tanti schemi URI: en.wikipedia.org/wiki/URI_scheme , comedata:
.