Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/06/2011, 18h05   #1
Invité de passage
 
Inscription : janvier 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 13
Points : 0
Points : 0
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.
jprscl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 22h13   #2
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 4 794
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 4 794
Points : 5 118
Points : 5 118
bonjour,

http://forums.mozillazine.org/viewto...st=0&sk=t&sd=a
En appliquant ce qui a été expliqué dans le lien donné :
Code :
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]
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 13h01   #3
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 4 794
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 4 794
Points : 5 118
Points : 5 118
j'apporte une correction à mon précédent message : il ne faut pas préciser l'unité.

Code :
1
2
3
4
5
 
if (document.compatMode=="CSS1Compat")
		document.documentElement.scrollTop=0;
else
		document.body.scrollTop=0;
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 00h20   #4
Invité de passage
 
Inscription : janvier 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 13
Points : 0
Points : 0
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 :
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.
jprscl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 01h36   #5
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 4 794
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 4 794
Points : 5 118
Points : 5 118
bonsoir,

sur quel iframe veux-tu exécuter ce code ?
Pour le compatMode voir ceci :
https://developer.mozilla.org/en/document.compatMode
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2011, 16h02   #6
Invité de passage
 
Inscription : janvier 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 13
Points : 0
Points : 0
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.
jprscl est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h47.


 
 
 
 
Partenaires

Hébergement Web