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 :

[DOM] Erreur JS (valeur null ou n'est pas un objet)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut [DOM] Erreur JS (valeur null ou n'est pas un objet)
    Bonjour,
    Je n'y connais rien en JS, j'ai trouvé ce code qui permet de faire des fondus d'images mais je rencontre une erreur sur uniquement sous IE, tout fonctionne sous FF.
    Erreur : VisuelTab[...].1 a la valeur null ou n'est pas un objet

    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
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    var visuel_n=0;
    function Visuel_Fondu()
    {
            if(document.all)
            {
                    if ( window.opera )
                            document.getElementById("visuel_" + VisuelPosChange).style.opacity = visuel_n*0.01;
                    else
                            document.getElementById("visuel_" + VisuelPosChange).filters.alpha.opacity=visuel_n;
                    visuel_n+=5;
                    if ( visuel_n<= 100 )
                    {
                            setTimeout("Visuel_Fondu()", 100);
                            return 0;
                    }
            }
            else
            {
                    document.getElementById("visuel_" + VisuelPosChange).style.setProperty("-moz-opacity", visuel_n, "");
                    visuel_n+=0.05;
                    if ( visuel_n<= 1 )
                    {
                            setTimeout("Visuel_Fondu()", 100);
                            return 0;
                    }
            }
            visuel_n=0;
            setTimeout("Visuel_Clear()", 100); //supprime clignotement sous FF
    }
     
    function Visuel_Clear()
    {
            //document.getElementById("visuel").innerHTML="";
            setTimeout("Visuel_Defil()", 4000);
    }
     
    var VisuelTab = [
            ["images/1.jpg",0],
            ["images/2.jpg",0],
            ["images/3.jpg",0],
            ["images/4.jpg",0],
            ["images/5.jpg",0],
            ["images/6.jpg",0],
            ["images/7.jpg",0],
    ];
    var VisuelPos=-1;
    var VisuelPosChange;
     
    function Visuel_Defil()
    {
            VisuelPosChange=VisuelPos;
            VisuelPos++;
            if ( VisuelTab.length <= VisuelPos )
                    VisuelPos=0;
     
            if ( VisuelTab[VisuelPosChange][1] == 1 )
                    document.getElementById("visuel").innerHTML="<img src='" + VisuelTab[VisuelPosChange][0] + "' id='visuel_" + VisuelPosChange + "' style='filter:alpha(opacity=0); -moz-opacity:0; position absolute; margin-top:0px; margin-left:0px;' />";
            else
            {
                    setTimeout("Visuel_Defil()", 10);
                    return 0;
            }
            Visuel_Fondu();
    }
    var LoadVisuelPos=0;
    LoadVisuel();
    function LoadVisuel() {
            var VisuelUrl;
            if ( VisuelTab[LoadVisuelPos][1] == 0 )
                    VisuelUrl=VisuelTab[LoadVisuelPos][0];
            else if ( VisuelTab[VisuelTab.length-1][1] < 1 )
            {
                    LoadVisuelPos++;
                    if ( VisuelTab.length <= LoadVisuelPos )
                            LoadVisuelPos=0;
                    setTimeout("LoadVisuel()", 10);
                    return 0;
            }
            else
                    return 0;
     
            if (window.XMLHttpRequest)
                    req = new XMLHttpRequest();
            else if (window.ActiveXObject)
                    req = new ActiveXObject("Microsoft.XMLHTTP");
            if (req) {
                    req.onreadystatechange = function() { JsIsLoading(LoadVisuelPos); };
                    req.open("GET", VisuelUrl, true);
                    req.send(null);
            }
    }
    function JsIsLoading(LoadVisuelPos_) {
            if (req.readyState == 4) {
                    if (req.status == 200 || req.status == 304)
                    {
                            VisuelTab[LoadVisuelPos_][1]++;
                            if ( VisuelPos==-1 )
                            {
                                    VisuelPos=0;
                                    Visuel_Defil();
                            }
                    }
                    LoadVisuelPos++;
                    if ( VisuelTab.length <= LoadVisuelPos )
                            LoadVisuelPos=0;
                    setTimeout("LoadVisuel()", 10);
            }
    }


    Pourriez-vous m'aider svp ?
    MErci.

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    Salut
    Je te renverrais plutôt sur ce code moins complexe et qui fonctionne sur quasiment tous les navigateurs :

    merci a spacefrog

    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
     
    <html>
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Fading Pic</title>
    </head>
     
    <body>
    <img id="spaffySpecial" src="lungs.gif" width=116 height=123 style="-moz-opacity:0;filter:alpha(opacity=0)">
    <br/>
    Opacité : <input type='text' id='result' style="width:40px;text-align:right;" />
    <script>
    var max = 100;
    var min = 0;
    var opacite=min;
    up=true;
    var IsIE=!!document.all;
    var ThePic=document.getElementById("spaffySpecial");
     
    function fadePic(){		
    				if (opacite<max && up){opacite+=2;}
    				if (opacite>min && !up){opacite-=2;}
    				if (opacite>=max){up=false;}
    				if (opacite<=min){up=true;}
     
    IsIE?ThePic.filters[0].opacity=opacite:document.getElementById("spaffySpecial").style.opacity=opacite/100;
    document.getElementById('result').value=opacite+"%"
    }
    setInterval(function(){fadePic();},100)
     
    </script>
    </body>
    </html>
    bon courage

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    Merci le_chomeur mais je souhaite faire défiler plusieurs images de la sorte, pas une seule.

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    ... le code est TRES simple a adapter , tu te créer un tableau d'image et a chaque fois que l'effet est finit pour une image tu passes a la suivante ... allez allez je suis sur que tu peux y arriver

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    Le_chomeur, merci pour tes encouragements mais je cherche à comprendre une erreur sur du code existant, pas à tout réécrire !
    Quand ta voiture est en panne t'en achètes une autre ?

  6. #6
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    Salut
    Je te donnais un code qui est fonctionnel d'une part et qui est moins lourd que ce que tu essaye de faire :

    - pourquoi utiliser des XMLHttpRequest juste pour charger des images ?? tu aurais pu utiliser les méthodes dom.

    - ensuite pour ton problème tu utilises un tableau de tableau donc tu dois appeler les valeurs :
    VisuelTab[0][0] ou VisuelTab[0][1] par exemple et non pas : VisuelTab[0].1

    Voila bon courage à toi ...

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

Discussions similaires

  1. Erreur de script : "style a la valeur null ou n'est pas un objet"
    Par Renzokuken dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/12/2009, 14h32
  2. Erreur IE6 className a la valeur null ou n'est pas un objet
    Par nandofive dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 18/04/2009, 14h21
  3. [POO] erreur IE : valeur Null ou n'est pas un objet
    Par An0nyme dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 25/03/2009, 15h40
  4. Erreur sous IE : 'form' a la valeur Null ou n'est pas un objet
    Par Esil2008 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 30/04/2008, 16h39

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