<a href="javascript:void(0)" id="loginlink">login</a>
Jag har sett sådana href
s många gånger, men jag vet inte exakt vad det betyder.
Operatören
void
utvärderar den givna uttrycket och returnerar sedanundefined
.Operatören
void
används ofta bara för att för att få fram den primäraundefined
-operatorn. värde, vanligtvis med hjälp av "void(0)
" (som är likvärdig med "void 0
"). I dessa fall är den globala variabelnundefined
användas i stället (förutsatt att den har inte har tilldelats en icke-standardiserad värde).
En förklaring finns här: void
operator.
Anledningen till att du vill göra detta med href
i en länk är att en javascript:
-URL normalt omdirigerar webbläsaren till en ren textversion av resultatet av utvärderingen av JavaScript. Men om resultatet är undefined
, så förblir webbläsaren på samma sida. void(0)
är bara ett kort och enkelt skript som utvärderar till undefined
.
Det betyder att det inte gör någonting. Det är ett försök att få länken att inte "navigera" någonstans. Men det är inte rätt sätt.
Du bör faktiskt bara returnera false
i onclick
-händelsen, så här:
<a href="#" onclick="return false;">hello</a>
Vanligtvis används det om länken gör någon JavaScript-grej. Som att lägga upp ett AJAX-formulär eller byta ut en bild eller liknande. I det fallet gör du bara så att den funktion som anropas returnerar false
.
För att göra din webbplats helt fantastisk inkluderar du vanligtvis en länk som gör samma sak, om personen som surfar på den väljer att inte köra JavaScript.
<a href="backup_page_displaying_image.aspx"
onclick="return coolImageDisplayFunction();">hello</a>
Du bör alltid ha en href på dina a-taggar. Det går bra att kalla en JavaScript-funktion som returnerar 'undefined'. Det gör även en länk till '#'.
Ankartaggar i Internet Explorer 6 utan href får inte stilen a:hover
.
Ja, det är hemskt och ett mindre brott mot mänskligheten, men det är Internet Explorer 6 i allmänhet också.
Jag hoppas att detta hjälper.
Internet Explorer 6 är faktiskt ett stort brott mot mänskligheten.