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

Bibliothèques & Frameworks Discussion :

Prototype sur image ?


Sujet :

Bibliothèques & Frameworks

  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 660
    Billets dans le blog
    1
    Par défaut Prototype sur image ?
    C'est possible ou pas ?
    Je n'y arrive pas ...
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 660
    Billets dans le blog
    1
    Par défaut
    En fait voilà ce que j'essaye de passer en prototype d'une image :
    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
     
    <script type='text/javascript'>
     
    var H=true
    var W=false
     
    function GetImageSize(path,D){
    	var GhostImage=new Image()
    	GhostImage.src=path
    	var TH=GhostImage.height
    	var TW=GhostImage.width
    	GhostImage=null
    	return D?TH:TW;}
     
    </script>
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    bonjour,

    là je ne comprends pas ton script
    Il y a un lien avec cette discussion ?

    C'est surtout ton paramètre D qui m'intrigue et tes variables H et W qui sont à false.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Par défaut
    D doit être un booléen (soit H soit W)
    et donc la fonction retourne soit la longueur soit la largeur...
    C'est quoi le problème en fait ?

  5. #5
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    D'abord je suis tombé sur cet article :
    http://developer.mozilla.org/fr/docs...%A0_JavaScript

    Et à partir de là j'ai fait deux scripts :

    -Sur celui-ci j'ai fait un prototype sur String (c'est un exemple de l'article que j'ai légèrement modifié) : ça marche avec IE (en fait avec ma vieille version 5 d'IE ) et Firefox.
    Code html : 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
     
    <html>
    <head>
    <title></title>
    <script type='text/javascript'>
    <!--
     String.prototype.inverse = function() 
     {
        var r = "", i;
        for (i = this.length - 1; i >= 0; i--) {
            r += this.charAt(i);
        }
        return r;
    }
    function testString()
    {
     var s = document.getElementById("idSpan").innerHTML;
     alert(s.inverse())
    }
     
    //-->
    </script>
     
    </head>
     
    <body onload="testString()">
     
    <span id="idSpan">SpaceFrog</span>
     
    </body>
     
    </html>

    -Sur celui-ci je l'ai fait avec l'objet Image(). IE5 renvoi un message d'erreur (la méthode n'est pas gérée par l'objet), mais il fonctionne avec Firefox :
    Code html : 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
     
    <html>
    <head>
    <title></title>
    <script type='text/javascript'>
    <!--
    Image.prototype.getImageSize = function()
      {
            var GhostImage = new Image();
            GhostImage.src = this.src;
            var TH =  GhostImage.height;
            var TW = GhostImage.width;
            GhostImage = null;
            return TH+" "+TW;
      }
     
    function testImage()
    {
      var elmt = document.getElementById("idImg");
     
      alert(elmt.getImageSize());
    }
     
    //-->
    </script>
     
    </head>
     
    <body onload="testImage()">
     
    <img id="idImg" style="width:50px" src="DSC00582B.JPG" />
     
    </body>
     
    </html>

    Chose intéressante : lorsque l'image n'existe pas H et W renvoient 0.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 660
    Billets dans le blog
    1
    Par défaut
    On ne pourrait donc pas sous IE coler un prototype sur une image ??
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    Citation Envoyé par SpaceFrog
    On ne pourrait donc pas sous IE coler un prototype sur une image ??
    Euh, ça ne marche pas non plus avec des versions plus récentes d'IE (6 et 7) ?

  8. #8
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    J'ignore si ça joue mais image est un objet de document contrairement à String() qui est un objet javascript. Avec une autre syntaxe peut-être

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 660
    Billets dans le blog
    1
    Par défaut
    je vais essayer de passer par object ... ???
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 660
    Billets dans le blog
    1
    Par défaut
    Bon ben ça marche avec object ...
    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
    <script type='text/javascript'>
     
    var H=true
    var W=false
     
    function GetImageSize(Obj,D){
       if(Obj.nodeName=="IMG"){
    	var GhostImage=new Image()
    	GhostImage.src=Obj.src
    	var TH=GhostImage.height
    	var TW=GhostImage.width
    	GhostImage=null
    	return D?TH:TW;}
    	}
     
     
    Object.prototype.TrueSize=function (){GetImageSize(Pic,Ortho)}
     
    </script>
     
    </head>
     
    <body>
    <img src="lungs.gif" onclick="alert(GetImageSize(this,H))" />
    </body>
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  11. #11
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    je dois avouer ne pas comprendre l'intéret de passer par object Une "simple" fonction ne suffisait pas (cf.ton premier message) ?

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 660
    Billets dans le blog
    1
    Par défaut
    Le but ici est de coller un prototype sur une image ...
    Et comme IE n'accepte pas un proto sur une image je colle le proto sur un objet et je teste si c'est une image ...

    Desavantage le proto est du coup affecté à tous les objets et du coup si on a une boucle for in on retrouvera le proto dans tous les objets ...
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 660
    Billets dans le blog
    1
    Par défaut
    Oulà shame on me !!!

    je l'utilise pas là le prototype ...
    et on dirait bien que sue Object non plus on ne puisse pas affecter un prototype ?
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  14. #14
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    j'ai fait un truc, qui ne me donne pas une entière satisfaction :
    Code html : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    <html>
    <head>
    <title></title>
    <script type='text/javascript'>
    <!--
    var myImage = function(idImage)
    {
       this.image = document.getElementById(idImage);
     
       if (this.image.tagName.toLowerCase()=="img")
       {
         if (this.image.readyState!=null) //pour IE
         {
           if (this.image.readyState.toLowerCase()!="complete")
              this.image = null;
         }
       }
       else
           this.image = null;
    }
     
    myImage.prototype =
    {
      getImageSize : function(D)
      {
         var GhostImage = new Image();
         var TH, TW;
         TH = 0; TW = 0;
         if (this.image!=null)
         {
           GhostImage.src = this.image.src;
           TH =  GhostImage.height;
           TW = GhostImage.width;
           GhostImage = null;
         }
         return (D)?("H= "+TH):("W= "+TW);
      }
      ,
      getImage : function()
      {
         return this.image;
      }
      ,
      isImage : function()
      {
         return (this.image.tagName.toLowerCase()=="img")?true:false;
      }
    }
     
    function testImage()
    {
      var Img1 = new myImage("idImg");
      var Img2  = Img1.getImage();
     
      alert(Img1.isImage());
     
      alert("Taille réelle : "+Img1.getImageSize(false));
     
      alert("Taille à l'écran : H= "+Img2.height+" W="+Img2.width);
    }
     
    //-->
    </script>
     
    </head>
     
    <body onload="testImage()">
     
    <img id="idImg" style="width:150px" src="i5.gif" />
     
    </body>
     
    </html>

    J'ai créé un objet myImage qui prend comme paramètre l'id de l'image choisie. Dans le constructeur, je teste la balise de l'objet (je vérifie que c'est une balise img).

    Le readyState c'est pour IE : c'est pour véifier que l'image est chargée, sinon TH et TW renvoient n'importe quoi (contrairement à FF qui retourne 0,0 si l'image n'est pas chargée).


    Puis je crée le prototype :
    j'ai supprimé le paramètre path de la fonction getSizeImage car cette donnée est contenue dans this.image.


    myImage ne renvoie l'objet image originale uniquement avec la méthode getImage() ce qui me permet d'obtenir les autres propriétés.

    On pourrait dire que j'ai créé un objet parent (myImage) à l'objet Image().

  15. #15
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    Spacefrog ?

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 660
    Billets dans le blog
    1
    Par défaut
    heu non pas résolu comme je le souahiterais mais bon on va pas y passer notre vie

    Merci Auteur,
    je pense que tu as mis le doigt dessus avec l'objet javascript / document ...
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  17. #17
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    c'est la seule réponse que je peux t'apporter , en plus du dernier script que j'ai posté.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/11/2011, 03h00
  2. un array sur images ? LOL
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 09/12/2004, 09h03
  3. [HTML][débutante] Map ou Onclick sur image ? Différent ?
    Par khany dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 08/12/2004, 14h05
  4. [allegro]passage de pointeur sur image
    Par Gonath dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 13/12/2003, 18h47
  5. zoom sur image de formulaire
    Par bourvil dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/10/2003, 09h25

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