Récupérer un valeur dans une fonction
Résolu
rasielblas
Messages postés
135
Date d'inscription
Statut
Membre
Dernière intervention
-
rasielblas Messages postés 135 Date d'inscription Statut Membre Dernière intervention -
rasielblas Messages postés 135 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Récupérer un valeur dans une fonction
- Fonction si et - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Comment récupérer un document dans le presse-papier samsung - Guide
- Comment récupérer un compte facebook piraté - Guide
- Comment recuperer une video sur youtube - Guide
2 réponses
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);
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
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);
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.
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
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,