Récupérer un valeur dans une fonction
Résolu
rasielblas
Messages postés
143
Statut
Membre
-
rasielblas Messages postés 143 Statut Membre -
rasielblas Messages postés 143 Statut Membre -
Bonjour,
J'ai une code qui permet de récupérer de calculer la fenêtre d'un pdf avec la valeur scale par rapport au width de la fenêtre le voici:
Ca marche bien mais le problème c'est que ce code ne prend pas la taille en temps réel du width que seulement si j'actualise la page. Alors ce que je veux c'est d'obtenir la valeur du width lorsque je redimensionne la fenêtre sans avoir à rafraichir la page.
J'aimerais donc insérer ce code dans un function resize:
Ce que je veux c'est quelque chose du genre:
Mais je ne sais pas comment faire, pouvez vous m'aider s'il vous plaît. Merci de votre collaboration.
J'ai une code qui permet de récupérer de calculer la fenêtre d'un pdf avec la valeur scale par rapport au width de la fenêtre le voici:
var unscaledViewport = page.getViewport(1); //scale permet de redimensionner un pdf sur un élément html var scale = Math.min(($(window).width() / unscaledViewport.width)); var viewport = page.getViewport(scale); console.log(viewport);
Ca marche bien mais le problème c'est que ce code ne prend pas la taille en temps réel du width que seulement si j'actualise la page. Alors ce que je veux c'est d'obtenir la valeur du width lorsque je redimensionne la fenêtre sans avoir à rafraichir la page.
J'aimerais donc insérer ce code dans un function resize:
$(window).resize(function() { });
Ce que je veux c'est quelque chose du genre:
$(window).resize(function() { var unscaledViewport = page.getViewport(1); var scale = Math.min(($(window).width() / unscaledViewport.width)); }); //La variable viewport doit récupère la variable scale qui se trouve dans la function resize var viewport = page.getViewport(scale); console.log(viewport);
Mais je ne sais pas comment faire, pouvez vous m'aider s'il vous plaît. Merci de votre collaboration.
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 recuperer une video sur youtube - Guide
- Comment récupérer un compte facebook piraté - 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,