Existe-t-il un moyen de modifier l'URL de la page actuelle sans recharger la page ?
Je voudrais accéder à la partie avant le dièse # si possible.
Je n'ai besoin de modifier que la partie après le domaine, donc ce n'est pas comme si je violais les politiques inter-domaines.
window.location.href = "www.mysite.com/page2.php"; // Sadly this reloads
NOTE : Si vous travaillez avec un navigateur HTML5, vous devez ignorer cette réponse. C'est maintenant possible, comme on peut le voir dans les autres réponses.
Il n'y a aucun moyen de modifier l'[URL][1] dans le navigateur sans recharger la page. L'URL représente ce qu'était la dernière page chargée. Si vous la modifiez (document.location
), la page sera rechargée.
Une raison évidente est que vous écrivez un site sur www.mysite.com
qui ressemble à une page de connexion bancaire. Ensuite, vous changez la barre d'URL du navigateur pour dire www.mybank.com
. L'utilisateur ne saura pas du tout qu'il se trouve en réalité sur www.mysite.com
.
Toute modification de la localisation (que ce soit window.location
ou document.location
) entraînera une requête sur cette nouvelle URL, si vous ne modifiez pas simplement le fragment d'URL. Si vous changez l'URL, vous changez l'URL.
Utilisez des techniques de réécriture d'URL côté serveur comme Apache's mod_rewrite si vous n'aimez pas les URL que vous utilisez actuellement.
En supposant que vous n’essayez pas de faire quelque chose de malveillant, tout ce que vous souhaitez faire à vos propres URL peut être réalisé par magie avec [htaccess][1].