Maison interface Web Tutoriel H5 Explication détaillée de l'historique des opérations pushstate et popstate de HTML5 pour modifier l'exemple de code URL actuel sans actualiser

Explication détaillée de l'historique des opérations pushstate et popstate de HTML5 pour modifier l'exemple de code URL actuel sans actualiser

Mar 16, 2017 pm 04:25 PM

Cet article présente principalement l'historique des opérations pushstate et popstate de HTML5, et les informations pertinentes sur la modification de l'URL actuelle sans actualiser. Les amis dans le besoin peuvent se référer à

<.> 1. Comprendre window.history

window.history représente l'historique de l'

objet window, qui est activement généré par l'utilisateur et accepte le javascript scripts Contrôlent l'objet global. L'objet window permet d'accéder à l'historique du navigateur via l'objet history. Il expose quelques méthodes et propriétés très utiles qui vous permettent d'avancer et de reculer librement dans l'historique.

1. En avant et en arrière dans l'histoire

Pour remonter dans l'histoire, vous pouvez faire ceci :


window.history.back();
Copier après la connexion
C'est comme si l'utilisateur clique sur le bouton Précédent

du navigateur .

De même, vous pouvez avancer, tout comme en cliquant sur le bouton Suivant du navigateur, comme ceci :


 window.history.forward();
Copier après la connexion

2. Déplacer Vers un point d'historique spécifié

En spécifiant une valeur relative à la position actuelle de la page, vous pouvez utiliser la méthode go() pour charger une page à partir de l'historique de la session en cours (position actuelle de la page

index La valeur est 0, la page précédente est -1 et la page suivante est 1).

Pour reculer d'une page (équivalent à rappeler()) :


 window.history.go(-1);
Copier après la connexion
Avancer d'une page (équivalent à rappeler()) :


window.history.go(1);
Copier après la connexion
De même, en passant le paramètre "2", vous pouvez avancer de 2 points d'enregistrement. Vous pouvez vérifier la valeur de l'attribut de longueur pour savoir combien de points d'enregistrement il y a dans la pile d'historique :


window.history.length;
Copier après la connexion

2. Modifier l'enregistrement d'historique points

La nouvelle

API de HTML5 étend window.history, rendant les points d'historique plus ouverts. Vous pouvez stocker le point d'enregistrement historique actuel, remplacer le point d'enregistrement historique actuel et surveiller le point d'enregistrement historique. Ce qui suit est une brève description de chacun.

1. Stocker le point d'enregistrement historique actuel

est stocké d'une manière similaire à la poussée de

tableau sur la pile ( Array.push()), ajoutez un point d'enregistrement d'historique dans window.history, par exemple :


après avoir exécuté le méthode pushState, l'adresse URL de la page est http://qianduanblog.com/post-1.html.
// 当前的url为:http://qianduanblog.com/index.html
var json={time:new Date().getTime()};
// @状态对象:记录历史记录点的额外对象,可以为空
// @页面标题:目前所有浏览器都不支持
// @可选的url:浏览器不会检查url是否存在,只改变url,url必须同域,不能跨域
window.history.pushState(json,"","http://qianduanblog.com/post-1.html");
Copier après la connexion

2. Remplacer le point d'historique actuel


window.history.replaceState est similaire à window.history.pushState, la différence est que replaceState ne le sera pas. dans la fenêtre L'effet de l'ajout d'un nouveau point d'enregistrement historique dans .history est similaire à window.location.replace(url), qui n'ajoutera pas de nouveau point d'enregistrement au point d'enregistrement historique. La méthode replaceState() est particulièrement appropriée lorsque vous souhaitez

mettre à jour

l'objet d'état ou l'URL de l'entrée actuelle de l'historique en réponse à une action de l'utilisateur.

3. Surveillance des points d'enregistrement historiques


La surveillance des points d'enregistrement historiques peut être intuitivement considérée comme la surveillance des changements d'URL, mais l'URL

sera ignorée. La partie

surveille la partie hachage de l'URL. HTML5 a une nouvelle API appelée onhashchange. Mon blog parle également de cette méthode et de solutions compatibles avec plusieurs navigateurs. Vous pouvez utiliser window.onpopstate pour surveiller les modifications apportées à l'URL et obtenir l'objet d'état stocké au point d'enregistrement historique, qui est l'objet json mentionné ci-dessus, tel que :


Il convient de noter que l'événement onpopstate
// 当前的url为:http://qianduanblog.com/post-1.html
window.onpopstate=function()
{
    // 获得存储在该历史记录点的json对象
    var json=window.history.state;
    // 点击一次回退到:http://qianduanblog.com/index.html
    // 获得的json为null
    // 再点击一次前进到:http://qianduanblog.com/post-1.html
    // 获得json为{time:1369647895656}
}
Copier après la connexion

ne sera pas déclenché lorsque le script javascript exécute window.history.pushState et window.history.replaceState. Une autre chose à noter est que Google Chrome et

Firefox

réagissent différemment lors de la première ouverture de la page. Google Chrome déclenche étrangement l'événement onpopstate, alors que Firefox ne le fait pas.

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!

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

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

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Bordure de tableau en HTML Bordure de tableau en HTML Sep 04, 2024 pm 04:49 PM

Guide de la bordure de tableau en HTML. Nous discutons ici de plusieurs façons de définir une bordure de tableau avec des exemples de bordure de tableau en HTML.

Marge gauche HTML Marge gauche HTML Sep 04, 2024 pm 04:48 PM

Guide de la marge HTML gauche. Nous discutons ici d'un bref aperçu de la marge gauche HTML et de ses exemples ainsi que de son implémentation de code.

Tableau imbriqué en HTML Tableau imbriqué en HTML Sep 04, 2024 pm 04:49 PM

Ceci est un guide des tableaux imbriqués en HTML. Nous discutons ici de la façon de créer un tableau dans le tableau ainsi que des exemples respectifs.

Disposition du tableau HTML Disposition du tableau HTML Sep 04, 2024 pm 04:54 PM

Guide de mise en page des tableaux HTML. Nous discutons ici des valeurs de la mise en page des tableaux HTML ainsi que des exemples et des résultats en détail.

Espace réservé d'entrée HTML Espace réservé d'entrée HTML Sep 04, 2024 pm 04:54 PM

Guide de l'espace réservé de saisie HTML. Nous discutons ici des exemples d'espace réservé d'entrée HTML ainsi que des codes et des sorties.

Liste ordonnée HTML Liste ordonnée HTML Sep 04, 2024 pm 04:43 PM

Guide de la liste ordonnée HTML. Ici, nous discutons également de l'introduction de la liste et des types HTML ordonnés ainsi que de leur exemple respectivement.

Déplacer du texte en HTML Déplacer du texte en HTML Sep 04, 2024 pm 04:45 PM

Guide pour déplacer du texte en HTML. Nous discutons ici d'une introduction, du fonctionnement des balises de sélection avec la syntaxe et des exemples à implémenter.

Bouton HTML onclick Bouton HTML onclick Sep 04, 2024 pm 04:49 PM

Guide du bouton HTML onclick. Nous discutons ici de leur introduction, de leur fonctionnement, des exemples et de l'événement onclick dans divers événements respectivement.

See all articles