Ugyldig kode: Hvad betyder href = "#"?

Når du ser href = "#" i live-kode på en webside, betyder det, at den person, der skrev siden, har begået en fejl. Du skal aldrig se href = "#" i den faktiske kildekode på en webside, fordi # i sig selv faktisk er ugyldig og meningsløs.

Hver gang du knytter JavaScript til et link, hvad enten det er eller ved at bruge et beskedent ækvivalent, skal du altid overveje dem, der af en eller anden grund ikke har aktiveret JavaScript. Det vende tilbage falsk i slutningen af ​​mit ovenstående eksempel forhindrer href faktisk at blive brugt, hvis JavaScript kører, men href er stadig det, der vil blive brugt, hvis JavaScript af en eller anden grund ikke kører. Href skal derfor indeholde en faktisk gyldig værdi baseret på, hvor du ønsker, at linket skal tage folk, der ikke har JavaScript til rådighed. Da den person, der skrev JavaScript til dig ikke ved, hvor du vil have disse mennesker til at blive taget, har de lige indsat et # i deres kode, hvor du har brug for at erstatte den rigtige adresse.

instagram viewer

En # er gyldig i en href-attribut, forudsat at det ikke er det eneste tegn i værdien. Hvor # efterfølges af yderligere tegn, er disse ekstra tegn værdien af ​​en id-attribut andetsteds i den aktuelle webside og siden springer for at vise mærket, der indeholder det id så tæt som muligt øverst i browseren viewport. For eksempel vil hoppe til

Et #-tegn er ikke gyldigt som den sidste karakter i href, da det indebærer, at du vil hoppe til en id på siden, men værdien af ​​det id, du skal hoppe til, er ikke blevet specificeret. Handlingen, som browseren skal tage i dette tilfælde, er ikke defineret, men de fleste vil simpelthen hoppe tilbage til toppen af ​​den aktuelle side.

Så hvad gør du, hvis den JavaScript, du vil vedhæfte, er sådan, at der ikke er noget alternativ til dem uden JavaScript? I så fald vil du ikke have dem uden JavaScript at se linket overhovedet, da hvis det er synligt for dem, vil nogle af dem klikke på det, og du har ikke noget, du vil have, at det skal gøre for dem, og det vil bare være forvirrende. Løsningen er derfor at sikre, at linket kun er synligt for dem, der har JavaScript aktiveret, og måden at gøre det på er at tilføje linket til websiden ved hjælp af JavaScript.

Kun hvor tilføjes til websiden ved hjælp af JavaScript, kan du være sikker på, at alle, der klikker på linket, vil har JavaScript aktiveret, og derfor kører doSomething () -koden, og href = "#" vil være ignoreret. Derefter og først da giver det nogen mening uanset at efterlade # på det sted i koden, da href-attributten er påkrævet for at nogle browsere kan acceptere koden som et gyldigt link, og hvor du ved, at de eneste, der ser linket, har JavaScript aktiveret ved du også, at ingen derfor nogensinde vil ende med at blive bragt til det sted, href peger på, og så det kan indeholde noget overhovedet uden at det betyder noget og så # er en så god værdi som enhver og er bestemt bedre end href = "javascript:" (hvilket er en konstruktion, der aldrig bør bruges uanset om noget følger tykktarmen eller ej).

instagram story viewer