Υπάρχει τρόπος να τροποποιήσω τη διεύθυνση URL της τρέχουσας σελίδας χωρίς να την επαναφορτώσω;
Θα ήθελα να έχω πρόσβαση στο τμήμα πριν από το # hash, αν είναι δυνατόν.
Χρειάζεται να αλλάξω μόνο το τμήμα μετά τον τομέα, οπότε δεν είναι σαν να παραβιάζω πολιτικές cross-domain.
window.location.href = "www.mysite.com/page2.php"; // Sadly this reloads
ΣΗΜΕΙΩΣΗ: Εάν εργάζεστε με ένα πρόγραμμα περιήγησης HTML5, τότε θα πρέπει να αγνοήσετε αυτή την απάντηση. Αυτό είναι πλέον εφικτό, όπως μπορείτε να δείτε στις άλλες απαντήσεις.
Δεν υπάρχει τρόπος να τροποποιήσετε τη URL στο πρόγραμμα περιήγησης χωρίς να επαναφορτώσετε τη σελίδα. Η διεύθυνση URL αντιπροσωπεύει ποια ήταν η τελευταία σελίδα που φορτώθηκε. Αν την αλλάξετε (document.location
) τότε θα επαναφορτωθεί η σελίδα.
Ένας προφανής λόγος είναι ότι γράφετε μια ιστοσελίδα στο www.mysite.com
που μοιάζει με σελίδα σύνδεσης σε τράπεζα. Στη συνέχεια, αλλάζετε τη γραμμή URL του προγράμματος περιήγησης ώστε να λέει www.mybank.com
. Ο χρήστης δεν θα γνωρίζει καθόλου ότι στην πραγματικότητα βλέπει το www.mysite.com
.
Οποιαδήποτε αλλαγή της διεύθυνσης (είτε window.location
είτε document.location
) θα προκαλέσει μια αίτηση σε αυτή τη νέα διεύθυνση URL, αν δεν αλλάζετε απλώς το τμήμα της διεύθυνσης URL. Εάν αλλάξετε τη διεύθυνση URL, αλλάζετε τη διεύθυνση URL.
Χρησιμοποιήστε τεχνικές επαναγραφής URL από την πλευρά του διακομιστή, όπως το mod_rewrite του Apache, αν δεν σας αρέσουν τα URL που χρησιμοποιείτε αυτή τη στιγμή.
Υποθέτοντας ότι δεν προσπαθείτε να κάνετε κάτι κακόβουλο, οτιδήποτε θα θέλατε να κάνετε στις δικές σας διευθύνσεις URL μπορείτε να το κάνετε με το htaccess.