Cosa significa "javascript:void(0)"?

<a href="javascript:void(0)" id="loginlink">login</a>

Ho visto molte volte questi href, ma non so cosa significhi esattamente.

Soluzione

L'operatore void valuta l'espressione data espressione e poi restituisce undefined.

L'operatore void è spesso usato semplicemente per ottenere la primitiva undefined. valore, di solito usando "void(0)" (che è equivalente a "void 0"). In questi casi, la variabile globale undefined può essere usata al suo posto (assumendo che non sia non sia stata assegnata ad un valore non predefinito valore).

Una spiegazione è fornita qui: operatore void.

La ragione per cui vorresti fare questo con il href di un link è che normalmente, un URL javascript: reindirizzerà il browser a una versione di testo semplice del risultato della valutazione di quel JavaScript. Ma se il risultato è undefined, allora il browser rimane sulla stessa pagina. void(0) è solo un breve e semplice script che valuta a undefined.

Commentari (26)

Significa che non farà nulla. È un tentativo di far sì che il link non "navighi" da nessuna parte. Ma non è il modo giusto.

Dovresti semplicemente "restituire false" nell'evento onclick, così:

<a href="#" onclick="return false;">hello</a>

Tipicamente è usato se il link sta facendo qualche cosa di 'JavaScript-y'. Come postare un modulo AJAX, o scambiare un'immagine, o altro. In questo caso si fa in modo che qualsiasi funzione venga chiamata restituisca false.

Per rendere il tuo sito completamente fantastico, comunque, generalmente includerai un link che fa la stessa azione, se la persona che lo naviga sceglie di non eseguire JavaScript.

<a href="backup_page_displaying_image.aspx"
   onclick="return coolImageDisplayFunction();">hello</a>
Commentari (17)

Dovresti sempre avere un href sui tuoi tag a. Chiamare una funzione JavaScript che restituisce 'undefined' andrà benissimo. Anche il collegamento a '#'.

I tag di ancoraggio in Internet Explorer 6 senza un href non ottengono lo stile a:hover applicato.

Sì, è terribile e un piccolo crimine contro l'umanità, ma anche Internet Explorer 6 in generale.

Spero che questo aiuti.

Internet Explorer 6 è effettivamente un grande crimine contro l'umanità.

Commentari (0)