IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Récupération taille d'image sous chrome


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 101
    Par défaut Récupération taille d'image sous chrome
    Bonjour à tous,

    j'ai besoin de récupérer la taille de l'image originale qui se trouve dans une vignette, voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <html>
    <head>
    <style>
    .monBloc{
    height:100px;
    width:100px;
    border:solid 1px black;
    }
    </style>
    <script type="text/javascript">
    function affiche_taille(){
     
               var imma=new Image();
               imma.src = 'image1.jpg';
               var haut = imma.height;
               var larg = imma.width;
     
    		   alert("hauteur= " +haut +"    largeur= "+larg);
    }
     
    </script>
     
    </head>
    <body>
    <img class="monBloc" src="image1.jpg" onclick="affiche_taille();" style="cursor:pointer;">
     
     
    </body>
    </html>
    Ca marche Nickel sous FF et IE mais pas sous Chrome, pourtant l'image est chargée avant l'appel de la fonction, celle-ci étant déclenchée par le click sur la vignette...
    J'ai cherché sur le net sans succès, les réponses à ce type de problème étant toujours les mêmes: code JS chargé avant l'image, ce qui n'est à priori pas le cas chez moi. J'ai essayé de mettre le script après le body, rien n'y fait...
    Quelqu'un pourrait-il éclairer ma lanterne et m'aider à rendre mon bout de code full compatible ?

    Merci d'avance pour votre aide

    Philippe

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Trouvé sur stackoverflow :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function getImgSize(imgSrc) {
        var newImg = new Image();
     
        newImg.onload = function() {
          var height = newImg.height;
          var width = newImg.width;
          alert ('The image size is '+width+'*'+height);
        }
     
        newImg.src = imgSrc; // this must be done AFTER setting onload
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 101
    Par défaut
    super,
    ça marche partout
    merci beaucoup
    bonne soirée

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 101
    Par défaut
    Je "détague" résolu momentanément car j'ai un autre problème avec le même code, ça doit venir de la façon dont je déclare mes variables mais franchement je vois pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    36
    37
    38
     
    <html>
    <head>
    <style>
    .monBloc{
    height:100px;
    width:100px;
    border:solid 1px black;
    }
    </style>
    <script type="text/javascript">
     
         var newImg = new Image();
         var haut;
         var larg;              //   Ici les variables ont déclarées en "global"
     
     
          newImg.onload = function() {
          haut = newImg.height;
          larg = newImg.width;
    	  alert(haut+"#"+larg);    // Ici le message renvoie bien les valeurs de hauteur et de largeur
          }
     
     function getImgSize() {
     alert("Message 1: On entre dans la fonction appelée par le click");
        newImg.src = 'image1.jpg'; 
    	alert ('The image size is '+haut+'*'+larg);   // Ici ça ne marche plus !!!   les variables haut et larg sont "undefined" (???)
    }
     
    </script>
     
    </head>
    <body>
    <img class="monBloc" src="image1.jpg" onclick="getImgSize();" style="cursor:pointer;">
     
     
    </body>
    </html>
    Je veux bien encore un peu d'aide SVP

    Philippe

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Le chargement de l'image prend du temps ! Là tu interroges les valeurs hauteur et largeur avant que l'image n'ait été chargée et l'évènement onload déclenché. Si l'alert est à l'intérieur du onload, c'est pour une bonne raison.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 101
    Par défaut
    Le problème en fait, c'est que la petite fonction du départ était un exemple pour comprendre comment récupérer mes hauteurs et largeurs sous chrome.
    Ces valeurs me servent ensuite dans une boucle qui va créer un InnerHTML (je fais un slide et la récupération des hauteurs et largeurs me sert à afficher les images sans déformation dans le slide) bref, j'ai besoin de récupérer ces valeurs dans la fonction d'origine qui a envoyé la demande pour les tailles... Il faut un setTimeOut ? (J'aime pas trop mais si c'est la seule solution).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lightbox décalage d'images sous Chrome
    Par Evcai dans le forum jQuery
    Réponses: 2
    Dernier message: 10/01/2014, 15h46
  2. les Alt ne s'affiches pas sous chrome et safari lorsque l'image n'est pas présente
    Par artichaudd dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/06/2011, 12h22
  3. Récupération d'une image sous forme de pixels
    Par chekchouka dans le forum Débuter
    Réponses: 3
    Dernier message: 06/02/2011, 21h38
  4. récupération de la taille d'images
    Par fredoh dans le forum Access
    Réponses: 7
    Dernier message: 27/02/2006, 13h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo