Ongeldige code: wat betekent href = "#"?

Wanneer u href = "#" in live-code op een webpagina ziet, betekent dit dat de persoon die de pagina heeft geschreven een fout heeft gemaakt. Je zou href = "#" nooit in de daadwerkelijke broncode van een webpagina moeten zien omdat de # op zichzelf eigenlijk ongeldig en zinloos is.

Telkens wanneer u JavaScript aan een link toevoegt, of dat nu zo is of een onopvallend equivalent gebruikt, moet u altijd rekening houden met degenen die om welke reden dan ook JavaScript niet hebben ingeschakeld. De false teruggeven aan het einde van mijn bovenstaande voorbeeld voorkomt dat de href daadwerkelijk wordt gebruikt als de JavaScript wordt uitgevoerd, maar de href is nog steeds wat wordt gebruikt als JavaScript om welke reden dan ook niet wordt uitgevoerd. De href moet daarom een ​​daadwerkelijke geldige waarde bevatten op basis van waar u wilt dat de link mensen meeneemt die geen JavaScript beschikbaar hebben. Omdat de persoon die het JavaScript voor u heeft geschreven niet weet waar u die mensen naartoe wilt brengen, hebben ze zojuist een # in hun code ingevoegd waar u het echte adres moet vervangen.

instagram viewer

Een # is geldig in een href-kenmerk, op voorwaarde dat dit niet het enige teken in de waarde is. Waar de # wordt gevolgd door extra tekens, zijn die extra tekens de waarde van een id-kenmerk elders in de huidige webpagina en de pagina springt om de tag met die id zo dicht mogelijk bij de bovenkant van de browser weer te geven uitkijk postje. Bijvoorbeeld zal naar springen

Een # -teken is niet geldig als het laatste teken van de href omdat het impliceert dat je naar een id binnen de pagina wilt springen, maar de waarde van de id om naar te springen niet is gespecificeerd. De actie die de browser in dat geval moet ondernemen, is ongedefinieerd, maar de meesten springen gewoon terug naar de bovenkant van de huidige pagina.

Dus wat doe je als het JavaScript dat je wilt toevoegen zodanig is dat er geen alternatief is voor degenen zonder JavaScript? In dat geval wil je die niet zonder JavaScript om de link helemaal te zien, want als het voor hen zichtbaar is, zullen sommigen erop klikken en je hebt niets dat je wilt dat het voor hen doet en dat zal gewoon verwarrend zijn. De oplossing is daarom om ervoor te zorgen dat de link alleen zichtbaar is voor mensen met JavaScript ingeschakeld en de manier om dat te doen is door de link toe te voegen aan de webpagina met JavaScript.

Alleen waar de wordt toegevoegd aan de webpagina met JavaScript kunt u er zeker van zijn dat iedereen die op de link klikt, dit ook doet JavaScript ingeschakeld en tat daarom de doSomething () code zal worden uitgevoerd en de href = "#" zal zijn buiten beschouwing gelaten. Alleen dan heeft het zin om de # op die plek in de code achter te laten, omdat het href-kenmerk vereist is om ervoor te zorgen dat sommige browsers de code accepteren als een geldige link en waarvan u weet dat de enige mensen die de link te zien zullen hebben JavaScript ingeschakeld weet je ook dat niemand daarom ooit daadwerkelijk naar de plaats wordt gebracht waar de href naar verwijst en dus alles kan bevatten zonder dat het iets uitmaakt en zo # is een even goede waarde als welke dan ook en is zeker beter dan href = "javascript:" (dit is een constructie die nooit mag worden gebruikt, ongeacht of iets de dubbele punt volgt of niet).

instagram story viewer