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 18/03/2010, 14h29   #1
Membre du Club
 
Avatar de ForgetTheNorm
 
Homme
Docteur en informatique
Inscription : novembre 2006
Messages : 119
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Docteur en informatique
Secteur : Enseignement

Informations forums :
Inscription : novembre 2006
Messages : 119
Points : 42
Points : 42
Par défaut Capter un évènement sur la Scrollbar

Bonjour à tous

Je possède une page (unique) dont quelques informations changent lorsque l'utilisateur clique sur des liens. Je cherche à capter l'évènement "l'utilisateur a déplacé la Scrollbar du navigateur" (ou de la frame), afin de recharger la page au même endroit une fois que l'utilisateur a cliqué sur son lien.

Est-ce possible en Javascript (ou avec tout autre subterfuge, je suis ouvert) ?

Pierre
ForgetTheNorm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 16h11   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 075
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 29 075
Points : 43 303
Points : 43 303
onScroll ?
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 19h58   #3
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 12 879
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 12 879
Points : 30 131
Points : 30 131
Citation:
Envoyé par ForgetTheNorm Voir le message
afin de recharger la page au même endroit une fois que l'utilisateur a cliqué sur son lien.
Comme le dit Spaffy, c'est du coté de onscroll qu'il faut regarder, mais attention toutefois, lorsque l'utilisateur clique sur un lien, c'est censé recharger la page, si c'est le cas, les variables JavaScript sont perdues, il faut donc les sauvegarder, soit dans un cookie, soit en les transmettant dans l'URL.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 20h01   #4
Membre du Club
 
Avatar de ForgetTheNorm
 
Homme
Docteur en informatique
Inscription : novembre 2006
Messages : 119
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Docteur en informatique
Secteur : Enseignement

Informations forums :
Inscription : novembre 2006
Messages : 119
Points : 42
Points : 42
Je me demande pourquoi je n'y ai pas pensé...
C'est exactement ce qu'il me faut.

Le soucis suivant est de faire passer la variable de page en page. Je pensais soit à un cookie (je n'aime pas trop), soit à une variable de session. J'utilise un serveur assez peu utilisé (Ocsigen), qui permet la gestion de sessions.

Je pensais à ce code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<html>
<head>
<script language="javascript">
 
function registerScroll() {
	// Recupere la position courante du scroll
	positionScroll = window.document.getElementById("divMain").scrollTop;
 
	// Ouvre quelquepart une page 
	adresse = "registerSessionScroll?scroll=" . positionScroll;
	***Mais où ?***
}
 
function setSessionScroll() {
	// Recupere la position enregistree en session du Scroll
	positionScroll = 10; // Generee par le serveur
	window.document.getElementById("divMain").scrollTop = positionScroll;
}
 
 
 
</script>
</head>
 
<body onLoad="javascript:setSessionScroll();">
 
<div id="divMain" style="position:relative; overflow:auto; width: 100px;  height: 100px;  border:solid 1px;" 
 
onScroll="javascript:registerScroll()">
 
a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a
 
</div>
 
</body>
Le soucis est qu'il faudrait dire au serveur d'ouvrir la page "adresse" qui modifie la variable de session, sans forcément s'afficher.
Avez-vous une idée sur la manière de procéder ? L'idée du pop-up qui apparait puis disparait est à proscrire

Pierre

Dernière modification par Bovino ; 18/03/2010 à 20h05. Motif: Balises [code] pas [quote] !!!
ForgetTheNorm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 20h15   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 12 879
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 12 879
Points : 30 131
Points : 30 131
Le problème, c'est que tu ne peux pas fixer une variable de session depuis le poste client

Je verrais bien une fonction appelée au clic sur les liens qui modifie le href avec un paramètre d'URL que tu n'as plus qu'à récupérer coté serveur.
Du style :
Code :
1
2
3
4
5
6
7
8
function setHREF(){
    var liens = document.getElementsByTagName('a'), nbliens = liens.length;
    for(var i=0; i<nbliens; i++){
        liens[i].onclick = function(){
            this.href += '?position='+registerScroll();
        }
    }
}
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 20h53   #6
Membre du Club
 
Avatar de ForgetTheNorm
 
Homme
Docteur en informatique
Inscription : novembre 2006
Messages : 119
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Docteur en informatique
Secteur : Enseignement

Informations forums :
Inscription : novembre 2006
Messages : 119
Points : 42
Points : 42
Citation:
Envoyé par Bovino Voir le message
Le problème, c'est que tu ne peux pas fixer une variable de session depuis le poste client

Je verrais bien une fonction appelée au clic sur les liens qui modifie le href avec un paramètre d'URL que tu n'as plus qu'à récupérer coté serveur.
Du style :
Code :
1
2
3
4
5
6
7
8
function setHREF(){
    var liens = document.getElementsByTagName('a'), nbliens = liens.length;
    for(var i=0; i<nbliens; i++){
        liens[i].onclick = function(){
            this.href += '?position='+registerScroll();
        }
    }
}

Merci pour ta réponse.
C'est une très bonne idée. Il faudra cependant que ma fonction soit un peu plus compliquée que ça ; en effet, le serveur web Ocsigen est très à cheval sur les parametres GET (et POST). C'est lui qui génère le code des <a href> avec des hashmaps qui lui sont propres. Je pense que je devrais donc donner une valeur par défaut et la modifier à la volée.

J'avais pensé à une solution comme celle-ci et avait abandonné l'idée, car j'avais peur de surcharger l'URL (j'ai 2 divs dont je souhaite garder la position).

Pierre
ForgetTheNorm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 22h28   #7
Inactif
 
Inscription : novembre 2002
Messages : 117
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 117
Points : 123
Points : 123
Question conne pourquoi tu veux sauvegarder la position scroll de ta page ?
Gatsu35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2010, 08h21   #8
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 075
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 29 075
Points : 43 303
Points : 43 303
Pour le restituer au rechargement sans doute ...
Certains navigateurs ne replacent pas le scroll de la page...
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2010, 13h38   #9
Membre du Club
 
Avatar de ForgetTheNorm
 
Homme
Docteur en informatique
Inscription : novembre 2006
Messages : 119
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Docteur en informatique
Secteur : Enseignement

Informations forums :
Inscription : novembre 2006
Messages : 119
Points : 42
Points : 42
Citation:
Envoyé par Gatsu35 Voir le message
Question conne pourquoi tu veux sauvegarder la position scroll de ta page ?
Comme le dit SpaceFrog, c'est pour le restituer au rechargement de la page. La plupart des navigateurs, lorsqu'on actualise la page, remettent les scrolls à leur précédente valeur.
Je souhaiterai avoir le même comportement, sauf que je ne réactualise pas ma page, mais je fais un lien vers elle-même (qui peut engendrer des modifications sur cette dernière, mais c'est sans importance ici).

Je teste la solution à l'instant et je vous tiens au courant

Pierre
ForgetTheNorm 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 +1. Il est actuellement 21h42.


 
 
 
 
Partenaires

Hébergement Web