Τι σημαίνει "javascript:void(0)";

<a href="javascript:void(0)" id="loginlink">login</a>

Έχω δει πολλές φορές τέτοια hrefs, αλλά δεν ξέρω τι ακριβώς σημαίνει αυτό.

Λύση

Ο τελεστής void αξιολογεί το δεδομένο έκφραση και στη συνέχεια επιστρέφει undefined. &gt, &gt, Ο τελεστής void χρησιμοποιείται συχνά απλώς για να λάβει το πρωτότυπο undefined. τιμή, συνήθως χρησιμοποιώντας το "void(0)" (το οποίο είναι ισοδύναμο με το "void 0"). Σε αυτά τα περιπτώσεις, η παγκόσμια μεταβλητή undefined μπορεί να χρησιμοποιηθεί αντ' αυτής (υποθέτοντας ότι έχει δεν έχει εκχωρηθεί σε μια μη προεπιλεγμένη τιμή).

Μια εξήγηση παρέχεται εδώ: τελεστής void.

Ο λόγος που θα θέλατε να το κάνετε αυτό με το href ενός συνδέσμου είναι ότι κανονικά, μια διεύθυνση URL javascript: θα ανακατευθύνει το πρόγραμμα περιήγησης σε μια έκδοση απλού κειμένου του αποτελέσματος της αξιολόγησης αυτής της JavaScript. Αλλά αν το αποτέλεσμα είναι undefined, τότε το πρόγραμμα περιήγησης παραμένει στην ίδια σελίδα. Το void(0) είναι απλώς ένα σύντομο και απλό σενάριο που αξιολογεί το αποτέλεσμα undefined.

Σχόλια (26)

Σημαίνει ότι δεν θα κάνει τίποτα. Είναι μια προσπάθεια να μην "πλοηγηθεί" ο σύνδεσμος πουθενά. Αλλά δεν είναι ο σωστός τρόπος.

Στην πραγματικότητα θα πρέπει απλά να "επιστρέφετε false" στο συμβάν "onclick", έτσι:

<a href="#" onclick="return false;">hello</a>

Συνήθως χρησιμοποιείται αν ο σύνδεσμος κάνει κάποιο "JavaScript-y" πράγμα. Όπως η αποστολή μιας φόρμας AJAX, ή η εναλλαγή μιας εικόνας, ή οτιδήποτε άλλο. Σε αυτή την περίπτωση απλά κάνετε οποιαδήποτε συνάρτηση καλείται να επιστρέφει "false".

Για να κάνετε τον ιστότοπό σας εντελώς φοβερό, ωστόσο, γενικά θα συμπεριλάβετε έναν σύνδεσμο που κάνει την ίδια ενέργεια, αν το άτομο που τον περιηγείται επιλέξει να μην εκτελέσει JavaScript.

<a href="backup_page_displaying_image.aspx"
   onclick="return coolImageDisplayFunction();">hello</a>
Σχόλια (17)

Θα πρέπει πάντα να έχετε ένα href στις ετικέτες a. Η κλήση μιας συνάρτησης JavaScript που επιστρέφει 'undefined' θα είναι μια χαρά. Το ίδιο και η σύνδεση με το '#'.

Στις ετικέτες άγκυρας στον Internet Explorer 6 χωρίς href δεν εφαρμόζεται το στυλ a:hover.

Ναι, είναι τρομερό και ένα μικρό έγκλημα κατά της ανθρωπότητας, αλλά από την άλλη το ίδιο ισχύει και για τον Internet Explorer 6 γενικά.

Ελπίζω αυτό να βοηθήσει.

Ο Internet Explorer 6 είναι στην πραγματικότητα ένα μεγάλο έγκλημα κατά της ανθρωπότητας.

Σχόλια (0)