<a href="javascript:void(0)" id="loginlink">login</a>
Έχω δει πολλές φορές τέτοια href
s, αλλά δεν ξέρω τι ακριβώς σημαίνει αυτό.
Ο τελεστής
void
αξιολογεί το δεδομένο έκφραση και στη συνέχεια επιστρέφειundefined
. >, >, Ο τελεστήςvoid
χρησιμοποιείται συχνά απλώς για να λάβει το πρωτότυποundefined
. τιμή, συνήθως χρησιμοποιώντας το "void(0)
" (το οποίο είναι ισοδύναμο με το "void 0
"). Σε αυτά τα περιπτώσεις, η παγκόσμια μεταβλητήundefined
μπορεί να χρησιμοποιηθεί αντ' αυτής (υποθέτοντας ότι έχει δεν έχει εκχωρηθεί σε μια μη προεπιλεγμένη τιμή).
Μια εξήγηση παρέχεται εδώ: τελεστής void
.
Ο λόγος που θα θέλατε να το κάνετε αυτό με το href
ενός συνδέσμου είναι ότι κανονικά, μια διεύθυνση URL javascript:
θα ανακατευθύνει το πρόγραμμα περιήγησης σε μια έκδοση απλού κειμένου του αποτελέσματος της αξιολόγησης αυτής της JavaScript. Αλλά αν το αποτέλεσμα είναι undefined
, τότε το πρόγραμμα περιήγησης παραμένει στην ίδια σελίδα. Το void(0)
είναι απλώς ένα σύντομο και απλό σενάριο που αξιολογεί το αποτέλεσμα undefined
.
Σημαίνει ότι δεν θα κάνει τίποτα. Είναι μια προσπάθεια να μην "πλοηγηθεί" ο σύνδεσμος πουθενά. Αλλά δεν είναι ο σωστός τρόπος.
Στην πραγματικότητα θα πρέπει απλά να "επιστρέφετε 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>
Θα πρέπει πάντα να έχετε ένα href στις ετικέτες a. Η κλήση μιας συνάρτησης JavaScript που επιστρέφει 'undefined' θα είναι μια χαρά. Το ίδιο και η σύνδεση με το '#'.
Στις ετικέτες άγκυρας στον Internet Explorer 6 χωρίς href δεν εφαρμόζεται το στυλ a:hover
.
Ναι, είναι τρομερό και ένα μικρό έγκλημα κατά της ανθρωπότητας, αλλά από την άλλη το ίδιο ισχύει και για τον Internet Explorer 6 γενικά.
Ελπίζω αυτό να βοηθήσει.
Ο Internet Explorer 6 είναι στην πραγματικότητα ένα μεγάλο έγκλημα κατά της ανθρωπότητας.