Ogiltig kod: Vad betyder href = "#"?

När du ser href = "#" i livekod på en webbsida betyder det att personen som skrev sidan har gjort ett misstag. Du bör aldrig se href = "#" i den faktiska källkoden på en webbsida eftersom själva # faktiskt är ogiltigt och meningslöst.

När du ansluter JavaScript till en länk, oavsett om det är så eller använder en diskret motsvarighet, måste du alltid ta hänsyn till dem som av någon anledning inte har JavaScript aktiverat. De returnera falskt i slutet av mitt exempel ovan förhindrar att href faktiskt används om JavaScript körs men href är fortfarande det som kommer att användas om JavaScript av någon anledning inte körs. Href måste därför innehålla ett faktiskt giltigt värde baserat på var du vill att länken ska ta personer som inte har JavaScript tillgängligt. Eftersom personen som skrev JavaScript för dig inte vet vart du vill att dessa människor ska tas med har de precis lagt in ett # i sin kod där du behöver ersätta den verkliga adressen.

instagram viewer

En # är giltig i ett href-attribut förutsatt att det inte är det enda tecknet i värdet. När # följs av ytterligare tecken är dessa extra tecken värdet på ett ID-attribut på andra håll i den aktuella webbsidan och sidan kommer att hoppa för att visa etiketten som innehåller den id så nära som möjligt överst i webbläsaren visningsområde. Till exempel kommer att hoppa till

Ett #-tecken är inte giltigt som det sista tecknet i href eftersom det innebär att du vill hoppa till en id på sidan men värdet på det id att hoppa till har inte angetts. Handlingen som webbläsaren ska vidta i det här fallet är odefinierad men de flesta kommer helt enkelt att hoppa tillbaka till toppen av den aktuella sidan.

Så vad gör du om JavaScript du vill bifoga är sådant att det inte finns något alternativ för dem utan JavaScript? Jo i så fall vill du inte ha de utan JavaScript att se länken alls eftersom om den är synlig för dem kommer några av dem att klicka på den och du har ingenting som du vill att det ska göra för dem och det kommer bara att vara förvirrande. Lösningen är därför att se till att länken endast är synlig för de med JavaScript aktiverat och sättet att göra det är att lägga till länken på webbsidan med JavaScript.

Endast där läggs till på webbsidan med JavaScript kan du vara säker på att alla som klickar på länken kommer att göra det har JavaScript aktiverat och därför kommer doSomething () -koden att köras och href = "#" kommer att vara ignoreras. Då och först då är det meningsfullt att lämna # på den platsen i koden eftersom href-attributet krävs för att vissa webbläsare ska acceptera koden som en giltig länk och där du vet att de enda som ser länken kommer att ha JavaScript aktiverat vet du också att ingen därför någon gång kommer att hamna till den plats som href pekar på och så den kan innehålla någonting alls utan att det spelar någon roll # är ett lika bra värde som alla och är säkert bättre än href = "javascript:" (vilket är en konstruktion som aldrig bör användas oavsett om något följer tjocktarmen eller inte).

instagram story viewer