Récupérer un valeur dans une fonction
Résolu/Fermé
rasielblas
Messages postés
135
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
12 mai 2021
-
Modifié le 7 mai 2019 à 12:54
rasielblas Messages postés 135 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 12 mai 2021 - 9 mai 2019 à 15:16
rasielblas Messages postés 135 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 12 mai 2021 - 9 mai 2019 à 15:16
A voir également:
- Récupérer un valeur dans une fonction
- Fonction si et - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Recuperer video youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
2 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
7 mai 2019 à 14:23
7 mai 2019 à 14:23
Bonjour,
Essaie comme ça :
Essaie comme ça :
var viewport; function updateViewport() { var unscaledViewport = page.getViewport(1); var scale = Math.min(($(window).width() / unscaledViewport.width)); viewport = page.getViewport(scale); } $(window).resize(updateViewport); updateViewport(); console.log(viewport);
rasielblas
Messages postés
135
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
12 mai 2021
9
8 mai 2019 à 07:43
8 mai 2019 à 07:43
Bonjour,
Merci, ca fonctionne:
Mais comment récupère-ton la valeur du variable en dehors du fonction à partir de $(window).resize(updateViewport); ?
Car lorsque je met par exemple la variable scale en dehors du fonction:
Alors ça me retourne un erreur: ReferenceError: scale is not defined
Merci, ca fonctionne:
var viewport; function updateViewport() { var unscaledViewport = page.getViewport(1); var scale = Math.min(($(window).width() / unscaledViewport.width)); viewport = page.getViewport(scale); console.log(viewport) console.log("Scale: " + scale); } $(window).resize(updateViewport);
Mais comment récupère-ton la valeur du variable en dehors du fonction à partir de $(window).resize(updateViewport); ?
Car lorsque je met par exemple la variable scale en dehors du fonction:
var viewport; function updateViewport() { var unscaledViewport = page.getViewport(1); var scale = Math.min(($(window).width() / unscaledViewport.width)); viewport = page.getViewport(scale); } $(window).resize(updateViewport); console.log(viewport) console.log("Scale: " + scale);
Alors ça me retourne un erreur: ReferenceError: scale is not defined
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
8 mai 2019 à 18:01
8 mai 2019 à 18:01
Bonjour,
Comme pour viewport ... en déclarant la variable en dehors de la fonction.
Comme pour viewport ... en déclarant la variable en dehors de la fonction.
var viewport; var scale ; function updateViewport() { var unscaledViewport = page.getViewport(1); scale = Math.min(($(window).width() / unscaledViewport.width)); viewport = page.getViewport(scale); } $(window).resize(updateViewport); console.log("viewport", viewport); console.log("Scale: " , scale);
rasielblas
Messages postés
135
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
12 mai 2021
9
Modifié le 9 mai 2019 à 08:02
Modifié le 9 mai 2019 à 08:02
Encore merci de m'avoir répondu! si j’essaie d’exécuter les deux variables viewport et scale en dehors du function cela me retourne toujours un résultat undefined, voici quelque capture du console:
Cordialement,
Cordialement,
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
9 mai 2019 à 09:47
9 mai 2019 à 09:47
Bonjour,
Peux-tu nous redonner ton code, tel qu'il est maintenant ?
Xavier
Peux-tu nous redonner ton code, tel qu'il est maintenant ?
Xavier
rasielblas
Messages postés
135
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
12 mai 2021
9
Modifié le 9 mai 2019 à 11:05
Modifié le 9 mai 2019 à 11:05
Bonjour,
Je suis encore sur l'ancien code que vous m'avez suggérer:
Cela m'a retourné scale: undefined, et viewport undefined. Les variables récupère bien le dimension de la fenêtre en temps réel si on le met dans la function mais quand on l’exécute en dehors du function alors elle est initialisé en undefined.
Je suis encore sur l'ancien code que vous m'avez suggérer:
var scale ; var viewport; function updateViewport() { var unscaledViewport = page.getViewport(1); scale = Math.min(($(window).width() / unscaledViewport.width)); viewport = page.getViewport(scale); } $(window).resize(updateViewport); console.log("viewport", viewport); console.log("Scale: " , scale);
Cela m'a retourné scale: undefined, et viewport undefined. Les variables récupère bien le dimension de la fenêtre en temps réel si on le met dans la function mais quand on l’exécute en dehors du function alors elle est initialisé en undefined.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
9 mai 2019 à 11:19
9 mai 2019 à 11:19
Bonjour,
C'est normal.
Il faut bien comprendre ce qu'il se passe ici.
Tu as un script (ces 10 lignes) qui est appelé lorsque la page est chargée. Dans l'état, le script fait :
- déclaration des variables ;
- déclaration d'une fonction, updateViewport, qui, quand elle est appelée, affecte des valeurs à tes deux variables ;
- affectation de cette fonction à l'événement Resize ;
- affichage du contenu des variables.
Déclarer la fonction ne l'exécute pas. Donc au chargement de ta page, la fonction n'est pas du tout appelée. Elle n'est appelée que quand la fenêtre est redimensionnée. Les variables ne sont donc initialisées qu'à ce moment.
Par ailleurs, l'affichage de la valeur des variables n'est fait qu'une fois : au chargement de la page. Donc avant que la fonction n'ait été appelée une première fois... Il est normal qu'elles soient encore undefined.
Pour y remédier, tu peux déplacer les deux console.log à l'intérieur du corps de la fonction.
Par ailleurs, je pense que tu as besoin d'initialiser tes variables au chargement de la page, car tu en auras besoin même si l'utilisateur ne redimensionne pas sa page.
Donc, rajoute un simple appel à la fonction (comme montré dans le code que j'avais donné) : updateViewport(); à la fin de ton script.
Xavier
C'est normal.
Il faut bien comprendre ce qu'il se passe ici.
Tu as un script (ces 10 lignes) qui est appelé lorsque la page est chargée. Dans l'état, le script fait :
- déclaration des variables ;
- déclaration d'une fonction, updateViewport, qui, quand elle est appelée, affecte des valeurs à tes deux variables ;
- affectation de cette fonction à l'événement Resize ;
- affichage du contenu des variables.
Déclarer la fonction ne l'exécute pas. Donc au chargement de ta page, la fonction n'est pas du tout appelée. Elle n'est appelée que quand la fenêtre est redimensionnée. Les variables ne sont donc initialisées qu'à ce moment.
Par ailleurs, l'affichage de la valeur des variables n'est fait qu'une fois : au chargement de la page. Donc avant que la fonction n'ait été appelée une première fois... Il est normal qu'elles soient encore undefined.
Pour y remédier, tu peux déplacer les deux console.log à l'intérieur du corps de la fonction.
Par ailleurs, je pense que tu as besoin d'initialiser tes variables au chargement de la page, car tu en auras besoin même si l'utilisateur ne redimensionne pas sa page.
Donc, rajoute un simple appel à la fonction (comme montré dans le code que j'avais donné) : updateViewport(); à la fin de ton script.
Xavier
7 mai 2019 à 15:04
En fait, quand je redimensionne la page alors la valeur retourné par la fonction updateViewport reste le même. l'évènement resize n'est pas détecter.
Cordialement,
7 mai 2019 à 15:07
Modifié le 7 mai 2019 à 15:15
7 mai 2019 à 15:24