Maison > interface Web > js tutoriel > Comment puis-je supprimer un fragment de hachage d'URL sans actualiser la page ?

Comment puis-je supprimer un fragment de hachage d'URL sans actualiser la page ?

Linda Hamilton
Libérer: 2024-12-03 16:02:16
original
286 Les gens l'ont consulté

How Can I Remove a URL Hash Fragment Without Refreshing the Page?

Suppression du fragment de hachage d'URL sans actualisation

Dans le paysage de développement Web moderne d'aujourd'hui, supprimer le fragment de hachage (#quelque chose) d'une URL ( par exemple, http://example.com#something) est une exigence courante. Bien qu'une approche simple comme définir "window.location.hash = ''" puisse sembler intuitive, elle ne résout pas complètement le problème.

Pour supprimer efficacement le hachage sans actualiser la page, nous nous tournons vers le HTML5. API d'historique. Cette API offre la possibilité de manipuler l'URL dans la barre d'adresse au sein du domaine actuel.

La fonction JavaScript suivante exploite l'API d'historique HTML5 pour supprimer le fragment de hachage :

function removeHash() {
    history.pushState("", document.title, window.location.pathname + window.location.search);
}
Copier après la connexion

Ce code L'extrait remplace l'URL actuelle par une nouvelle sans le fragment de hachage, poussant le nouvel état dans l'historique du navigateur. Il fonctionne de manière transparente dans les navigateurs modernes comme Chrome, Firefox, Safari, Opera et même IE 10.

Pour les navigateurs qui ne prennent pas en charge l'API History, une approche de dégradation gracieuse peut être utilisée :

function removeHash() {
    var scrollV, scrollH, loc = window.location;
    if ("pushState" in history)
        history.pushState("", document.title, loc.pathname + loc.search);
    else {
        // Prevent scrolling by storing the page's current scroll offset
        scrollV = document.body.scrollTop;
        scrollH = document.body.scrollLeft;

        loc.hash = "";

        // Restore the scroll offset, should be flicker free
        document.body.scrollTop = scrollV;
        document.body.scrollLeft = scrollH;
    }
}
Copier après la connexion

Cette fonction étendue garantit la suppression du hachage dans les navigateurs qui ne prennent pas en charge l'API History, en préservant la position de défilement de la page pour minimiser les perturbations visuelles.

En utilisant ces techniques, vous peut supprimer efficacement le fragment de hachage d'une URL sans déclencher une actualisation de la page, offrant ainsi une expérience utilisateur transparente sur différents navigateurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal