recherche
Maisoninterface WebTutoriel H5Nouvelles fonctionnalités de l'historique HTML5 pushState, replaceState et la différence entre les deux compétences du didacticiel _html5

L'objet window dans le DOM permet d'accéder à l'historique du navigateur via la méthode window.history, vous permettant d'avancer et de reculer dans l'enregistrement d'accès de l'utilisateur.

À partir de HTML5, nous pouvons commencer à manipuler cette pile d'historique.

1. Historique

Utilisez les méthodes back(), forward() et go() pour avancer dans l'historique de l'utilisateur et Précédent

Avant et Précédent

Retour :


Copier le code
Le code est le suivant :

window.history.back();

Cette méthode agira comme si l'utilisateur avait cliqué sur la touche retour de la barre d'outils du navigateur.

De même, la méthode suivante peut également être utilisée pour générer le comportement de transfert de l'utilisateur :


Copier le code
Le code est le suivant :

window.history.forward();

Déplacez-vous vers une position spécifique dans l'historique

Vous peut utiliser la méthode go() pour charger une page spécifique à partir de l'historique de session.

Reculer d'une page :


Copiez le code
Le code est le suivant :

window.history.go(-1);

Avancer d'une page :


Copier le code
Le code est le suivant :

window.history.go(1);

De même, vous pouvez avancer ou revenir en arrière sur plusieurs pages.

Vous pouvez également trouver le nombre total de pages dans la pile d'historique en vérifiant la propriété length de l'historique du navigateur.


Copier le code
Le code est le suivant :

var numberOfEntries = window.history .length;

Remarque : IE prend en charge la transmission des paramètres d'URL à la méthode go().

2. Ajouter et modifier des entités d'historique

Introduit depuis Gecko2 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)

HTML5 a introduit les deux méthodes history.pushState() et history.replaceState(), qui permettent d'ajouter et de modifier des entités d'historique. En même temps, ces méthodes fonctionneront avec l'événement window.onpostate.

Utilisez la méthode history.pushState() pour modifier le référent. Cette méthode peut être utilisée dans l'en-tête http créé pour l'objet xmlhttpRequest après avoir modifié l'état. Ce référent sera l'URL du document lors de la création du XMLHttpRequest.

pushState est utilisé pour ajouter l'enregistrement de la page actuelle à l'historique, tandis que replaceState est utilisé exactement de la même manière que pushState. La seule différence est qu'il est utilisé pour modifier l'enregistrement de la page actuelle dans l'historique.

Exemple

Supposons que la page http://mozilla.org/foo.html exécute JS


Copier code
Le code est le suivant :

var stateObj = { foo: "bar" }; history.pushState(stateObj, "page 2", "bar. html");

Cette méthode entraînera l'affichage de la barre d'adresse URL http://mozilla.org/bar.html, mais le navigateur ne chargera pas la page bar.html, même si cette page existe.

Maintenant, supposons à nouveau que l'utilisateur continue sur http://google.com et clique en arrière. À ce stade, la barre d'adresse URL sera http://mozilla.org/bar.html et la page recevra l'événement popstate (chrome). Cet objet d'état contiendra une copie de stateObj. Cette page ressemble à foo.html.

À ce moment-là, nous cliquons à nouveau, l'URL deviendra http://mozilla.org/foo.html et le document recevra un autre événement popstate et un objet d'état nul. Cette action de retour ne modifie pas le contenu du document. (Essayez peut-être de charger... Chrome après un moment)

méthode pushState

pushState() a trois paramètres : objet d'état, titre (maintenant ignoré et non traité), URL (facultatif). Détails spécifiques :

· Objet d'état – L'objet d'état est un objet JavaScript, qui est lié à la nouvelle entité historique créée par la méthode pushState(). Utilisé pour stocker des informations sur l'entrée que vous souhaitez insérer dans l'historique. L'objet d'état peut être n'importe quelle chaîne Json. Étant donné que Firefox utilisera le disque dur de l'utilisateur pour accéder à l'objet d'état, l'espace de stockage maximum de cet objet est de 640 Ko. Si elle est supérieure à cette valeur, la méthode pushState() lèvera une exception. Si vous avez vraiment besoin de plus d’espace de stockage, utilisez le stockage local.

· title—firefox ignore désormais ce paramètre, bien qu'il puisse être utilisé à l'avenir. Le moyen le plus sûr de l'utiliser maintenant est de passer une chaîne vide pour empêcher de futures modifications. Ou vous pouvez transmettre un titre court pour représenter l'état

· URL : ce paramètre est utilisé pour transmettre l'URL de la nouvelle entité d'historique. Notez que le navigateur ne chargera pas cette URL après avoir appelé la méthode pushState(). Mais peut-être qu'il essaiera de charger cette URL après un certain temps. Par exemple, une fois que l'utilisateur a redémarré le navigateur, la nouvelle URL peut ne pas être un chemin absolu. S'il s'agit d'un chemin relatif, il sera relatif à l'URL existante. La nouvelle URL doit être dans le même domaine que l'URL existante, sinon pushState() lèvera une exception. Ce paramètre est facultatif. S'il est vide, il sera défini sur l'URL actuelle du document.

Dans un sens, appeler la méthode pushState() est très similaire à la définition de window.location = "#foo". Les deux créeront et activeront une autre entité d'historique associée au document actuel, mais pushState(). )Il y a aussi quelques avantages :

La nouvelle URL peut être n'importe quelle URL du même domaine que l'URL actuelle. En revanche, si vous définissez uniquement le hachage, window.location restera dans le même document.

Vous n'avez pas besoin de modifier l'URL si vous n'en avez pas besoin. En revanche, définir window.location = "#foo"; génère uniquement une nouvelle entité d'historique. Si votre hachage actuel n'est pas #foo

, vous pouvez associer des données arbitraires à votre nouvelle entité d'historique. En utilisant des méthodes basées sur le hachage, toutes les données pertinentes doivent être codées dans une courte chaîne.

Notez que la méthode pushState() n'entraînera pas l'heure de changement de hachage, même si l'ancienne et la nouvelle URL n'ont que des hachages différents. La méthode

replaceState()

history.replaceState() est utilisée un peu comme pushState(), sauf que replaceState() est utilisée pour modifier l'entité historique actuelle au lieu d'en créer une nouvelle. Cette méthode est parfois utile lorsque vous devez mettre à jour un objet d'état ou l'entité d'historique actuelle en réponse à certaines actions de l'utilisateur, vous pouvez l'utiliser pour mettre à jour l'objet d'état ou l'URL de l'entité d'historique actuelle.

Événement popstate

Lorsque l'entité historique est modifiée, l'événement popstate se produit. Si l'entité d'historique est générée par les méthodes pushState et replaceState, l'attribut state de l'événement popstate contiendra une copie de l'objet d'état de l'entité d'historique

Pour plus de détails, voir window.onpopstate

Lire l'état actuel

Lire l'état existant

Lorsque la page se charge, elle peut avoir un objet d'état non vide. Cela peut se produire lorsque l'utilisateur redémarre le navigateur après que la page ait défini un objet d'état (en utilisant pushState ou replaceState). Lorsque la page se recharge, la page recevra l'événement onload, mais il n'y aura pas d'événement popstate. Cependant, si vous lisez la propriété history.state, vous obtiendrez l'objet d'état après que l'événement popstate se soit produit
var currentState = history.state
Navigateurs : testés et fonctionnels

Navigateurs HTML5

Chrome 8,9,10
Firefox 4
Safari 5
Opera 11
Safari iOS 4.3
Navigateurs HTML4

IE6,7,8,9
Firefox 3
Opera 10
Safari 4
Safari iOS avant la version 4.3

pushState et replaceState Difference

history.pushState(state, title, url)

-------------------- - ------------------------------------------------- - ---------

Ajoutez l'URL actuelle et history.state à l'historique, et remplacez l'URL actuelle par le nouvel état et l'URL. Cela n’entraînera pas l’actualisation de la page.

state : informations d'état correspondant à l'URL vers laquelle accéder.

title:

を渡す必要はありません。url: ジャンプ先の URL アドレス。ドメインを越えることはできません。

history.replaceState(状態, タイトル, URL)

-------------------------- -- ------------------------------------------------ --

現在の状態と URL を新しいものに置き換えます。ページが更新されることはありません。

state: ジャンプ先の URL に対応する状態情報。

title: 渡すことはできません。

url: ジャンプ先の URL アドレス。ドメインを越えることはできません。

------------------------------------------ ---------- ------------------------------------

あるようです両者に違いはありませんが、実際の大きな違いは、pushState は履歴レコードを追加しますが、replaceState は追加しないことです。
Déclaration
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
H5: comment il améliore l'expérience utilisateur sur le WebH5: comment il améliore l'expérience utilisateur sur le WebApr 19, 2025 am 12:08 AM

H5 améliore l'expérience utilisateur Web avec le support multimédia, le stockage hors ligne et l'optimisation des performances. 1) Support multimédia: H5 et les éléments simplifient le développement et améliorent l'expérience utilisateur. 2) Stockage hors ligne: WebStorage et indexDDB permettent une utilisation hors ligne pour améliorer l'expérience. 3) Optimisation des performances: les travailleurs Web et les éléments optimisent les performances pour réduire la consommation de bande passante.

Déconstruire le code H5: étiquettes, éléments et attributsDéconstruire le code H5: étiquettes, éléments et attributsApr 18, 2025 am 12:06 AM

Le code HTML5 se compose d'étiquettes, d'éléments et d'attributs: 1. La balise définit le type de contenu et est entourée de supports d'angle, tels que. 2. Les éléments sont composés d'étiquettes de démarrage, de contenus et de balises d'extrémité, telles que le contenu. 3. Les attributs définissent les paires de valeurs clés dans la balise de démarrage, améliorent les fonctions, telles que. Ce sont les unités de base pour créer une structure Web.

Comprendre le code H5: les principes fondamentaux de HTML5Comprendre le code H5: les principes fondamentaux de HTML5Apr 17, 2025 am 12:08 AM

HTML5 est une technologie clé pour créer des pages Web modernes, offrant de nombreux nouveaux éléments et fonctionnalités. 1. HTML5 introduit des éléments sémantiques tels que, etc., qui améliore la structure des pages Web et le référencement. 2. Prise en charge des éléments multimédias et des supports intégrés sans plug-ins. 3. Les formulaires améliorent les nouveaux types d'entrée et les propriétés de vérification, simplifiant le processus de vérification. 4. Offrez des fonctions de stockage hors ligne et locales pour améliorer les performances des pages Web et l'expérience utilisateur.

Code H5: meilleures pratiques pour les développeurs WebCode H5: meilleures pratiques pour les développeurs WebApr 16, 2025 am 12:14 AM

Les meilleures pratiques pour le code H5 incluent: 1. Utilisez des déclarations de doctype correctes et l'encodage des caractères; 2. Utilisez des balises sémantiques; 3. Réduire les demandes HTTP; 4. Utiliser le chargement asynchrone; 5. Optimiser les images. Ces pratiques peuvent améliorer l'efficacité, la maintenabilité et l'expérience utilisateur des pages Web.

H5: L'évolution des normes et technologies WebH5: L'évolution des normes et technologies WebApr 15, 2025 am 12:12 AM

Les normes et technologies Web ont évolué à ce jour de HTML4, CSS2 et JavaScript simple et ont subi des développements importants. 1) HTML5 introduit des API telles que Canvas et WebStorage, ce qui améliore la complexité et l'interactivité des applications Web. 2) CSS3 ajoute des fonctions d'animation et de transition pour rendre la page plus efficace. 3) JavaScript améliore l'efficacité de développement et la lisibilité du code par la syntaxe moderne de Node.js et ES6, telles que les fonctions et classes Arrow. Ces changements ont favorisé le développement de l'optimisation des performances et les meilleures pratiques des applications Web.

H5 est-il un raccourci pour HTML5? Explorer les détailsH5 est-il un raccourci pour HTML5? Explorer les détailsApr 14, 2025 am 12:05 AM

H5 n'est pas seulement l'abréviation de HTML5, il représente un écosystème de technologie de développement Web moderne plus large: 1. H5 comprend HTML5, CSS3, JavaScript et API et technologies connexes; 2. Il offre une expérience utilisateur plus riche, interactive et fluide et peut fonctionner de manière transparente sur plusieurs appareils; 3. À l'aide de la pile de technologie H5, vous pouvez créer des pages Web réactives et des fonctions interactives complexes.

H5 et HTML5: termes couramment utilisés dans le développement WebH5 et HTML5: termes couramment utilisés dans le développement WebApr 13, 2025 am 12:01 AM

H5 et HTML5 se réfèrent à la même chose, à savoir HTML5. HTML5 est la cinquième version de HTML, apportant de nouvelles fonctionnalités telles que les balises sémantiques, la prise en charge multimédia, la toile et les graphiques, le stockage hors ligne et le stockage local, l'amélioration de l'expressivité et de l'interactivité des pages Web.

À quoi se réfère H5? Explorer le contexteÀ quoi se réfère H5? Explorer le contexteApr 12, 2025 am 12:03 AM

H5Referstohtml5, apivotaltechnologyInwebdevelopment.1) html5introducesnewelementsandapisforrich, dynamicwebapplications.2) itsupp OrtsMultimeDiaHithoutPlugins, améliorant la réception detièmeaCrOsDevices.3) SemantelelementsImproveContentsTructureAndSeo.4) H5'sRespo

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP