Retour en arrière - Javascript/Node.js - Programmation
Marsh Posté le 14-06-2019 à 09:21:41
Bonjour,
Je ne suis pas sûr de comprendre l'intérêt de cette partie :
Code :
|
Qu'est-ce que ça fait si tu l'enlèves ?
Marsh Posté le 14-06-2019 à 10:28:37
ReplyMarsh Posté le 14-06-2019 à 14:53:01
dazai66 a écrit : Le history.back me ramène bien à la page précedente plutôt qu'au p= x inférieur |
Marsh Posté le 14-06-2019 à 15:03:14
Oui, j'ai saisi le truc, je cherche une solution mais ce n'est pas certain qu'on puisse.
Marsh Posté le 15-06-2019 à 16:00:38
Trouvé une solution bourrine :
Code :
|
Si on vient sur la page "www.mondomaine.fr/mypage.html" depuis une autre page "www.google.fr" c'est que l'historique est déjà supérieur à une page, dans ce cas là, à chaque fois qu'on avance dans la navigation on va modifier l'état de l'historique actuel en ajoutant un marqueur (goback: true). Quand la personne fera "précédent", par exemple depuis "www.mondomaine.fr/mypage.html#p3", cela déclenchera l'évènement qui dira de retourner en arrière puisque le marqueur de l'historique est sur True. Ce nouveau retour en arrière déclenchera à nouveau l'évènement et comment nous serons sur "www.mondomaine.fr/mypage.html#p2", de même le marqueur sera sur True, et ainsi de suite. Le problème c'est qu'arrivé à la page "www.mondomaine.fr/mypage.html", si l'historique était vide, ça bug, du coup dans ce cas là, lors de la première visite de cette page on vérifie si l'historique est supérieur à 1 page sinon on modifie notre marqueur pour dire qu'il faudra retourner à cette même page.
Le tout étant de créer un marqueur à chaque nouvelle entrée dans l'historique lors de ta navigation en scroll infini, là je t'ai donné un exemple avec une navigation par ancres, normalement c'est adaptable à ta navigation mais comme je ne sais pas comment tu t'y es pris.
Marsh Posté le 17-06-2019 à 08:44:27
MaybeEijOrNot je suis impressionné que certaine personne comme toi cherche à aider autant, et fait des recherches sur plusieurs jours pour y parvenir, je te remercie énormément pour ton travail, j'essai cela ce matin et je te fais un retour
Marsh Posté le 17-06-2019 à 10:13:56
ReplyMarsh Posté le 17-06-2019 à 10:40:09
Au final ta solution n'était pas adaptable avec le code d'infinite scroll, j'ai finis par mettre un truc moche..
Tout mes filtres ont une même class.
J'empêche l'history.back si mon click détécte la class qui est sur mes boutons.
Mais je te remercie beaucoup !
Bonne journée
Marsh Posté le 17-06-2019 à 11:09:09
gatsu35 a écrit : J'aurai plutôt géré l'event scroll au lieu de wheel |
C'était juste pour créer un exemple rapidement.
dazai66 a écrit : J'empêche l'history.back si mon click détécte la class qui est sur mes boutons. |
Tu fais comment ? Car l'évènement 'popstate' n'est pas annulable, ça fait parti du problème.
Marsh Posté le 17-06-2019 à 13:20:52
Code :
|
Popstate ne l'est pas, mais une fois dedans je filtre si le bouton est une checkbox de filtre, sinon history.back
C'est pas beau, mais franchement tant pis x)
Marsh Posté le 14-06-2019 à 08:58:39
Bonjour,
J'ai une page en infinie scroll pour de la vente de produit, plus on descend dans la page plus un paramètre dans l'url p=1, p=2 ... grandit.
Le problème étant que quand j'appuie sur le bouton de retour, je retourne au p= chiffre actuel -1, et donc je reste sur la même page.
J'ai souhaité corrigé ce problème en Javascript avec ce code :
Cela fonctionne très bien, j'ai un bon retour à la page précédente. Mais cela génère des retours en arrières même quand je clique sur des boutons de filtrage du listing produits.
J'ai regardé pas mal de forum mais je trouve pas chaussure à mon pied, quelqu'un aurait-il une variante qui déclencherait le retour en arrière uniquement avec le bouton précédent du navigateur et non pas tout les types de boutons?
En vous remerciant,