Questo particolare codice in un tag è comunemente visto nel codice di esempio che coinvolge JavaScript. Più comunemente lo vedrai apparire come qualcosa del genere dove lo scopo principale del tag è quello di fornire un link su cui le persone possano fare clic per eseguire JavaScript.
Se utilizzato nel codice di esempio in questo modo, il # è un segnaposto che rappresenta dove vuoi che il link vada effettivamente se la persona che visita la tua pagina non ha JavaScript abilitato.
Quando vedi href = "#" nel codice live su una pagina web significa che la persona che ha scritto la pagina ha fatto un errore. Non dovresti mai vedere href = "#" nel codice sorgente effettivo di una pagina web perché il # da solo non è in realtà valido e privo di significato.
Ogni volta che si collega JavaScript a un collegamento in modo simile o utilizzando un equivalente discreto, è sempre necessario considerare anche coloro che per qualsiasi motivo non hanno JavaScript abilitato. Il restituire false alla fine del mio esempio precedente impedisce che l'href venga effettivamente utilizzato se JavaScript viene eseguito ma l'href è comunque ciò che verrà utilizzato se per qualsiasi motivo il JavaScript non viene eseguito. Pertanto, è necessario che href contenga un valore valido effettivo in base al punto in cui si desidera che il collegamento porti le persone che non dispongono di JavaScript. Poiché la persona che ha scritto JavaScript per te non sa dove vuoi che vengano portate quelle persone hanno appena inserito un # nel loro codice in cui è necessario sostituire l'indirizzo reale.
Un # è valido in un attributo href a condizione che non sia l'unico carattere nel valore. Laddove il # è seguito da caratteri aggiuntivi, questi caratteri aggiuntivi sono il valore di un attributo id altrove nella pagina Web corrente e la pagina salterà per visualizzare il tag contenente quell'ID il più vicino possibile alla parte superiore della finestra del browser. Ad esempio, passerà alla stessa pagina web. Se hai anche un nome file che precede il #, l'id che salterà sarà all'interno di quella pagina web, quindi salterà a quell'ID nella pagina next.htm.
Un carattere # non è valido come ultimo carattere di HREF poiché implica che si desidera passare a un ID all'interno della pagina ma il valore dell'ID a cui saltare non è stato specificato. L'azione che il browser dovrebbe intraprendere in quell'istanza non è definita, tuttavia la maggior parte tornerà semplicemente all'inizio della pagina corrente.
Quindi cosa fai se il JavaScript che vuoi allegare è tale da non avere alternative per quelli senza JavaScript? Bene, in quel caso non vuoi che quelli senza JavaScript vedano affatto il link poiché se è visibile a loro, alcuni di loro faranno clic su di esso e non hai nulla che tu voglia che faccia per loro e che sarà solo fonte di confusione. La soluzione quindi è garantire che il collegamento sia visibile solo per quelli con JavaScript abilitato e il modo per farlo è quello di aggiungere il collegamento nella pagina Web usando JavaScript.
Solo dove viene aggiunto nella pagina Web usando JavaScript puoi essere sicuro che tutti gli utenti che fanno clic sul link avranno JavaScript abilitato e quindi il codice doSomething () verrà eseguito e href = "#" verrà ignorato. Quindi e solo allora ha senso lasciare il # in quel punto nel codice poiché l'attributo href è richiesto per consentire ad alcuni browser di accettare il codice come link valido e dove sai che le uniche persone a vedere il link avrà JavaScript abilitato, sai anche che nessuno finirà mai per essere effettivamente portato nel posto a cui punta l'href e quindi può contenere qualsiasi cosa senza che contenga e quindi # è un valore buono come qualsiasi e sicuramente meglio di href = "javascript:" (che è un costrutto che non dovrebbe mai essere usato indipendentemente dal fatto che qualcosa segua i due punti o meno).