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

Bibliothèques & Frameworks Discussion :

Navigation par ancre


Sujet :

Bibliothèques & Frameworks

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Navigation par ancre
    Bonjour,

    J'ai besoin d'une navigation par ancre pour pouvoir conserver un historique de navigation. Mais le problème est que lorsque l'utilisateur clique sur les boutons précédent et/ou suivant de son navigateur le document.observe dom:loaded et le dom:unloaded ne conviennent pas, ainsi qu'en changeant l'adresse à la main.
    Je recherche donc une piste pour pouvoir gérer ces événements utilisateur propres aux navigateurs.

    P.S: si un topic existe déjà à ce sujet, je vous prie de m'en excuser, la recherche par mot clé ne m'a rien donné de valable pour mon cas.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Points : 658
    Points
    658
    Par défaut
    Salut,

    Plusieurs méthodes existent et chacune connait ses avantages et ses inconvénients. En plus... cela dépend du navigateur; pour changer!

    * Firefox le fait tout seul comme un grand.

    * Google Chrome: je pense que cela fonctionne directement aussi, je n'en suis plus certain...

    * Pour IE: c'est la fête!

    La premiere solution:
    Avec IE8, il y a l'introduction de onhashchange.

    La seconde solution:
    Elle fonctionne avec tous les 6,7,8.
    Il faut introduire une iframe invisible et/ou placée hors de l'écran.
    le fait de changer la page de l'iframe va créer un point d'historique.
    Lorsque tu vas faire "précédent", la page de l'iframe va revenir a sa valeur précédente.
    Comment faire alors? Il faut propager le changement de l'iframe a ta page.

    Qd tu changes le hash de ta page; tu appelles aussi une page dans l'iframe qui aura en parametre le hash également.
    Moi ce que je fais, c'est dans la page de l'iframe, je place la valeur du hash dans le "title" de la page et j'y place également le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
          document.observe("dom:loaded", function() {
            if (window.parent.location.hash.length>0){
              window.parent.location.hash = document.title;
            }
          });
    Quand tu vas effectuer le "précédent", dans l'iframe, c'est un "load".
    Donc il lance la fonction observant cette action.
    Et bim, on replace le hash!

    J'ai créé quelques articles sur mon blog qui parle de tout ca:
    http://rapotor.blogspot.com/

    Je peux te fournir plus d explication si je n'ai pas été assez clair dans cette transcription nébuleuse de ma pensée.

    Cordialement

    Cédric

Discussions similaires

  1. Navigation par ancres : ancres passées dans l'url
    Par MisteroL dans le forum jQuery
    Réponses: 1
    Dernier message: 12/01/2009, 22h45
  2. Navigation par ancre
    Par jak0 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/12/2008, 01h48
  3. Navigation par onglet
    Par elghadi_mohamed dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/04/2007, 10h34
  4. [WinForms]Passer du MDI à la navigation par onglet
    Par jyl2002 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 14/10/2006, 13h15
  5. [MFC / ActiveX] Navigation par tabulation
    Par tus01 dans le forum MFC
    Réponses: 8
    Dernier message: 11/02/2006, 01h02

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