IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Evénement hashchange au chargement de la page


Sujet :

jQuery

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Par défaut Evénement hashchange au chargement de la page
    Bonjour,

    D'habitude je développe en PHP/MySQL, mais j'utilise de temps en temps JavaScript et Jquery.
    Pour mon projet, j'ai fait un site qui fonctionne avec les changements de hash pour la navigation, et chaque changement de hash rafraichit le contenu principal de la page.
    Mais je rencontre un problème avec la gestion des changements de hash avec Jquery.
    J'ai un bout de code que j'appelle à la fin de ma page pour surveiller les changements de hash:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    jQuery(window).on('hashchange',function(){ 
    	var hash= location.hash.substring;
            le code à executer en fonction du hash .....
    });
    Ca marche nickel, sauf dans un cas précis lorsque l'utilisateur arrive sur le site pour la première fois, lorsqu'il clique sur n'importe quel lien du site, le hash change bien mais le navigateur recharge la page et donc le changement de hash n'est pas vu par Jquery et il ne m'affiche pas la bonne page, et ensuite si on clique sur un autre lien ça marche correctement. Et si on fait un refresh de la page, là ça marche aussi. C'est vraiment que pour le tout premier clic de l'utilisateur.
    Je pense que ça merde à cause du fait que la première URL ne contient pas de hash et donc le navigateur fait une redirection que je ne souhaite pas, comment on peut éviter ce comportement du navigateur ?

    Merci d'avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    le navigateur recharge la page
    Javascript ne survit pas à un rechargement de page ...

    Il te faut donc un flag ...
    soit en cookie, en local storage ou en paramètre get
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Par défaut
    Hello,

    Merci de t'intéresser à mon problème déjà :-) !

    En fait le navigateur fait un rechargement de page alors que je ne le souhaite pas, l'utilisateur arrive sur le site avec l'url :

    http://monsite.fr

    Puis il clique sur un lien :

    http://monsite.fr#!hash

    Et là hop il fait une redirection au lien de suivre l'ancre.
    Et donc il n'est pas sur la bonne page, et ensuite au prochain lien ça fonctionne.
    Pour moi c'est parce que le premier clic il "capte" pas que c'est juste une ancre.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    inhibe le lien ...
    avec un prevent defaut et fais un scrollto à la pace ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Par défaut
    Est-ce que tu peux détailler un peu ta solution ?
    Parce que là j'ai pas tout compris ....

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    essaye dans un premier temps de remplacer ton lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://monsite.fr#!hash
    par
    Car si j'ai bien compris ta problématique tu souhaites naviguer sur ta page avec des liens vers des ancres sur la même page

    Je pense que le fait d'indiquer htpp:// force le navigateur à recharger la page, ce qui ne semble pas être le but recherché.

    Si cela ne fonctionne pas il faudra inhiber le lien et coder un script qui fera scroller la page au droit du lien cible ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Je pense que le fait d'indiquer htpp:// force le navigateur à recharger la page, ce qui ne semble pas être le but recherché.
    +1. Normalement quand il n’y a que le hash qui change, ça ne devrait pas provoquer un rechargement de page.
    @wylls : Vérifie que ce n’est pas une histoire de https et http qui se mélangent.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. [MySQL] problème avec la récupération de données hashées avec l'algorythme md5 dans ma BD
    Par roy-mustang dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 07/07/2011, 08h21
  2. probléme avec le tutoriel menu déroulant animé avec jquery
    Par VIRGINIE87 dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 05/04/2011, 21h02
  3. Problème de colspan avec JQuery et Firefox
    Par cedrick21 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 17/01/2011, 11h43
  4. Problème avec jQuery
    Par Shinzo94 dans le forum jQuery
    Réponses: 2
    Dernier message: 18/08/2009, 11h59
  5. [js]problèmes avec jquery
    Par pomgnon dans le forum jQuery
    Réponses: 3
    Dernier message: 30/03/2007, 20h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo