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

JavaScript Discussion :

Remontée de page dans iframe enfant


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Remontée de page dans iframe enfant
    Bonjour à tous,

    J'ai un site avec un cas de figure assez spécial.

    Une page d'accueil incluant une IFrame d'une page A avec des liens vers une page B. Quand je clique sur un des liens de la page A, la page B s'ouvre donc toujours dans l'Iframe.

    Mais si je clique sur un lien de la page A situé tout en dessous de celle-ci, j'arrive sur la page B avec le "scroller" toujours dans le même état et je dois à chaque fois remonté vers le haut de la page.

    Pour contrer ce problème, j'avais inclus dans la page B une ancre <a name="Top"></a> et un code JavaScript permettant d'accéder à cette ancre location.hash = hashValue;

    Ce code fonctionne sur tous les navigateurs sauf sur Firefox depuis la version 4.

    Quelqu'un connait-il une autre astuce pour effectuer une remontée de page dans une iframe ?

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    http://forums.mozillazine.org/viewto...st=0&sk=t&sd=a
    En appliquant ce qui a été expliqué dans le lien donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	if (document.compatMode=="CSS1Compat")
    		document.documentElement.scrollTop='0px';
    	else
    		document.body.scrollTop='0px';
    fonctionne sous IE9 et FF4 pas testé avec d'autres navigateurs


    [edit]
    Exécute ce code lors du onload() de la page.
    Si je ne me trompe pas tu pourras supprimer l'ancre
    [/edit]

  3. #3
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    j'apporte une correction à mon précédent message : il ne faut pas préciser l'unité.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (document.compatMode=="CSS1Compat")
    		document.documentElement.scrollTop=0;
    else
    		document.body.scrollTop=0;

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Auteur Voir le message
    j'apporte une correction à mon précédent message : il ne faut pas préciser l'unité.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (document.compatMode=="CSS1Compat")
    		document.documentElement.scrollTop=0;
    else
    		document.body.scrollTop=0;
    Merci pour votre réponse.

    En fait, je n'arrive pas à faire fonctionner ce code. Il n'y a pas de remontée au niveau de l'iframe fille.

    A quoi correspond CSS1Compat ?

    Merci d'avance.

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonsoir,

    sur quel iframe veux-tu exécuter ce code ?
    Pour le compatMode voir ceci :
    https://developer.mozilla.org/en/document.compatMode

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    J'ai créé des pages html de tests pour mieux comprendre la situation.

    http://rsclfans.ovh.org/iframe/1.htm

    • 1.htm -> page principale incluant une iframe vers 2.htm
    • 2.htm -> page affichée dans l'iframe de 1.htm et contenant un bouton "inscription" affichant 3.htm
    • 3.htm


    Sous n'importe quel navigateur SAUF sous Firefox 4 et +, quand je clique sur le bouton "inscription" de 2.htm, 3.htm s'affiche dans l'iframe avec remontée du scroller car je fais appel à mon ancre dans la balise form de 2.htm (voir code source de la page).

    Comment faire pour que ça marche sous Firefox 4 et + ?

    PS : j'ai bien inclus le code JS avec le compactMode.

Discussions similaires

  1. Page dans IFrame avec protection du domaine
    Par hoodvy dans le forum Langage
    Réponses: 5
    Dernier message: 28/08/2013, 15h48
  2. Charger une page dans <iframe> discrètement
    Par Bilbax dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 11/05/2008, 16h25
  3. Actualisaton automatique page dans iframe
    Par nicaud dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/03/2007, 16h13
  4. Ouvrir une page dans une Iframe par js
    Par 10-nice dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/08/2005, 16h24
  5. [ifrmaes]Charger une page dans une iframe
    Par Destampy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/05/2005, 15h54

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