<a href="javascript:void(0)" id="loginlink">login</a>
Jeg har set sådanne href
s mange gange, men jeg ved ikke, hvad det betyder.
Operatoren
void
evaluerer den angivne udtryk og returnerer derefterundefined
.Operatoren
void
bruges ofte blot for at opnå den primitiveundefined
. værdi, normalt ved at bruge "void(0)
" (som svarer til "void 0
"). I disse tilfælde er den globale variabelundefined
kan bruges i stedet (forudsat at den har ikke er blevet tildelt en ikke-default værdi).
Der er en forklaring her: void
-operator.
Grunden til at du ønsker at gøre dette med href
i et link er, at en javascript:
URL normalt vil omdirigere browseren til en ren tekstversion af resultatet af evalueringen af JavaScript. Men hvis resultatet er undefined
, forbliver browseren på den samme side. void(0)
er blot et kort og enkelt script, der evaluerer til undefined
.
Det betyder, at det ikke vil gøre noget. Det er et forsøg på at få linket til ikke at "navigere" nogen steder hen. Men det er ikke den rigtige måde.
Du bør faktisk bare returner false
i onclick
begivenheden, som her:
<a href="#" onclick="return false;">hello</a>
Typisk bruges det, hvis linket gør noget "JavaScript-y". Som f.eks. at sende en AJAX-formular eller udskifte et billede eller lignende. I det tilfælde skal du bare få den funktion, der kaldes, til at returnere false
.
Hvis du vil gøre dit websted helt fantastisk, vil du dog som regel inkludere et link, der udfører den samme handling, hvis den person, der browser det, vælger ikke at køre JavaScript.
<a href="backup_page_displaying_image.aspx"
onclick="return coolImageDisplayFunction();">hello</a>
Du bør altid have en href på dine a-tags. Det er helt fint at kalde en JavaScript-funktion, der returnerer 'undefined'. Det samme gælder link til '#'.
Ankertags i Internet Explorer 6 uden en href får ikke anvendt stilen a:hover
.
Ja, det er forfærdeligt og en mindre forbrydelse mod menneskeheden, men det er Internet Explorer 6 generelt også.
Jeg håber, at dette hjælper.
Internet Explorer 6 er faktisk en større forbrydelse mod menneskeheden.