Lien entre 2 scripts

Signaler
Messages postés
29
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
25 juillet 2007
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour à tous!
J'essaie de mettre en liaison deux scripts (l'un appelle l'autre). Tout fonctionnait bien quand je passait deux paramètres. Par contre, dès que je suis passé au 3e paramètre il a pas aimé, et depuis il me dit même que mon second argument est Null ou n'est pas un objet.............
J'en ai carrément trop marre!

Voici les deux scripts :

menu_dynamique_dhtml:

<!--

ejs_mv3_largeur = 150;
ejs_mv3_hauteur = 400;

/* LISTE DES MENU */
ejs_mv3_menu = new Array;
/*ejs_mv3_menu[0] = "Societe";
ejs_mv3_menu[1] = "Qualité";
ejs_mv3_menu[2] = "Documents Types";
ejs_mv3_menu[3] = "Aide / Formation";
*/

/* LISTE DES LIENS */
ejs_mv3_lien = new Array;
ejs_mv3_lien[0] = ''
ejs_mv3_lien[1] = ''
ejs_mv3_lien[2] = ''
/*ejs_mv3_lien[0] += "- menu1.1
";
ejs_mv3_lien[0] += "- menu1.2
";
ejs_mv3_lien[0] += "- menu1.3
";
ejs_mv3_lien[1] += "- menu2.1
";
ejs_mv3_lien[2] += "- menu3.1
";
ejs_mv3_lien[2] += "- menu3.2
";
*/

function d(texte)
{
    document.write(texte);
}

d("
");
/*    + "style="position:relative;"
    + "width:" + ejs_mv3_largeur + ";"
    + "height:"    + ejs_mv3_hauteur + ";"
    + "">"
);*/
   
d("
");
/*    + "style="position:absolute;"
    + "width:" + (ejs_mv3_largeur-8) + ";"
    + "height:" + (ejs_mv3_hauteur-8) + ";"
    + "top:4;" + "left:4;"
    + "clip:rect(0 " + (ejs_mv3_largeur-8) + " " + (ejs_mv3_hauteur-8) + " 0)">"
);*/
   
d("
"
    //+ "Chargement du menu ..."
    + "
"
);
   
d("
"
    + "
"
);
   
d("

");

ejs_mv3_mode = 1;
ejs_mv3_actuel = 0;

function ejs_mv3_show( menu , tab_menu , tab_lien )
{
    for( var i=0 ; i<tab_menu.length ; i++ )
    {
        ejs_mv3_menu[i] = tab_menu[i];
    }
   
    for( var j=0 ; j<tab_lien.length ; j++ )
    {
        ejs_mv3_lien[j] = tab_lien[j];
    }
   
    if( menu == "menu" )
    {
        var html = "\";
        for( a=0 ; a<ejs_mv3_menu.length ; a++ )
        {
            html +=     \"----
\"
                    +        \""
                    +            ""
                    +                ejs_mv3_menu[a]
                    +            ""
                    +        ", \"
                    +    \"\";
        }
        html += "
";
        document.getElementById("ejs_mv3_scroll_1").innerHTML = html;
        if(ejs_mv3_mode == 2)
            ejs_mv3_action(1);
    }
    else
    {
        var html =     "\"
                +         \"----
\"
                +             \""
                +                 ejs_mv3_menu[menu]
                +             ", \"
                +        \"\"
                +        \"----
\"
                +            \""
                +                ejs_mv3_lien[menu]
                +            ", \"
                +        \"\"
                +        \"----
\"
                +            \""
                +                "&lt; Retour "
                +            ", \"
                +        \"\"
                +    "
";
               
        document.getElementById("ejs_mv3_scroll_2").innerHTML = html;
        if(ejs_mv3_mode == 1)
            ejs_mv3_action(2);
    }
}
ejs_mv3_cursor = ejs_mv3_largeur;

function ejs_mv3_action(action)
{
    if(action == 2)
    {
        if( ejs_mv3_cursor > 0 )
        {
            ejs_mv3_cursor -= 10;
            document.getElementById("ejs_mv3_scroll_1").style.left = ejs_mv3_cursor - ejs_mv3_largeur;
            document.getElementById("ejs_mv3_scroll_2").style.left = ejs_mv3_cursor;
            setTimeout("ejs_mv3_action(" + action + ")",1);
            ejs_mv3_mode = 2;
        }
    }
    else
    {
        if( ejs_mv3_cursor < ejs_mv3_largeur )
        {
            ejs_mv3_cursor += 10;
            document.getElementById("ejs_mv3_scroll_1").style.left = ejs_mv3_cursor - ejs_mv3_largeur;
            document.getElementById("ejs_mv3_scroll_2").style.left = ejs_mv3_cursor;
            setTimeout("ejs_mv3_action(" + action + ")",1);
            ejs_mv3_mode = 1;
        }
    }
}

//window.onload = new Function("ejs_mv3_show("menu")");

-->

defilement_menu:

<!--
//images du manège
var pict = ["js/sodedat93.PNG",
    "js/qualite.jpg",
    "js/documents_types.png",
    "js/help.png"];
//lien des vignettes dans l'ordre des images ci dessus
var lien = ["sodedat();",
    "qualite();",
    "documents_types();",
    "help();"];
var angle 0, ll, hh, bcl, vit 0.05;
//taille des vignettes
var taille = 50;
//largeur de tout le manège
var largeur = 30*pict.length;
//hauteur de tout le manège
var hauteur = 40;

var ejs_mv3_largeur = 150;
var ejs_mv3_hauteur = 400;

function window_onload()
{
    for( i=1 ; i"
    }
   
    return move()
}

function move()
{
    ll=document.body.clientWidth/2
    hh=document.body.clientHeight/2
    angle=angle-vit
   
    for( i=1 ; i

Donc pour les explications : quand je clique sur l'image qui actionne 'sodedat()' dans le 2e script, l'erreur est dite en ligne 4, mais le debugger de windows me dit qu'il ne peut pas afficher le code source d'où elle est tirée.
Et lorsque je clique sur l'image qui actionne 'qualite()' toujours dans le 2e script, l'erreur est en ligne 72 de 1er script et me dit que 'length' est Null ou n'est pas un objet.

Voilà, je comprends vraiment pas :/

Merci d'avance pour votre aide.

4 réponses

Messages postés
764
Date d'inscription
lundi 21 juin 2004
Statut
Membre
Dernière intervention
5 février 2010

Je suis désolé, mais j'ai pas envie de me taper tout le code pour identifier les bouts qui marchent pas
Si possible, j'aimerai que tu caractérises ces morceaux en les changeant de couleur par exemple et donner l'erreur exeacte donnée par IE ou mieux Firefox.
Merci.
++
Messages postés
29
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
25 juillet 2007

Messages postés
29
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
25 juillet 2007

dsl je ne sais pas ce qu'il s'est passé avec l'autre message :/

menu_dynamique_dhtml:

<!--

ejs_mv3_largeur = 150;
ejs_mv3_hauteur = 400;

/* LISTE DES MENU */
ejs_mv3_menu = new Array;
/*ejs_mv3_menu[0] = "Societe";
ejs_mv3_menu[1] = "Qualité";
ejs_mv3_menu[2] = "Documents Types";
ejs_mv3_menu[3] = "Aide / Formation";
*/

/* LISTE DES LIENS */
ejs_mv3_lien = new Array;
ejs_mv3_lien[0] = ''
ejs_mv3_lien[1] = ''
ejs_mv3_lien[2] = ''
/*ejs_mv3_lien[0] += "- menu1.1
";
ejs_mv3_lien[0] += "- menu1.2
";
ejs_mv3_lien[0] += "- menu1.3
";
ejs_mv3_lien[1] += "- menu2.1
";
ejs_mv3_lien[2] += "- menu3.1
";
ejs_mv3_lien[2] += "- menu3.2
";
*/

function d(texte)
{
    document.write(texte);
}

d("
");
/*    + "style="position:relative;"
    + "width:" + ejs_mv3_largeur + ";"
    + "height:"    + ejs_mv3_hauteur + ";"
    + "">"
);*/
   
d("
");
/*    + "style="position:absolute;"
    + "width:" + (ejs_mv3_largeur-8) + ";"
    + "height:" + (ejs_mv3_hauteur-8) + ";"
    + "top:4;" + "left:4;"
    + "clip:rect(0 " + (ejs_mv3_largeur-8) + " " + (ejs_mv3_hauteur-8) + " 0)">"
);*/
   
d("
"
    //+ "Chargement du menu ..."
    + "
"
);
   
d("
"
    + "
"
);
   
d("

");

ejs_mv3_mode = 1;
ejs_mv3_actuel = 0;

function ejs_mv3_show( menu , tab_menu , tab_lien )
{
    for( var i=0 ; i<tab_menu.length ; i++ ) //l'erreur est donné à cette ligne-ci par IE - 'length' est Null ou n'est pas un objet
    {
        ejs_mv3_menu[i] = tab_menu[i];
    }
   
    for( var j=0 ; j<tab_lien.length ; j++ ) // l'erreur se répand ici si l'autre n'existe pas
    {
        ejs_mv3_lien[j] = tab_lien[j];
    }
   
    if( menu == "menu" )
    {
        var html = "\";
        for( a=0 ; a<ejs_mv3_menu.length ; a++ )
        {
            html +=     \"----
\"
                    +        \""
                    +            ""
                    +                ejs_mv3_menu[a]
                    +            ""
                    +        ", \"
                    +    \"\";
        }
        html += "
";
        document.getElementById("ejs_mv3_scroll_1").innerHTML = html;
        if(ejs_mv3_mode == 2)
            ejs_mv3_action(1);
    }
    else
    {
        var html =     "\"
                +         \"----
\"
                +             \""
                +                 ejs_mv3_menu[menu]
                +             ", \"
                +        \"\"
                +        \"----
\"
                +            \""
                +                ejs_mv3_lien[menu]
                +            ", \"
                +        \"\"
                +        \"----
\"
                +            \""
   
            +                "&lt; Retour "
                +            ", \"
                +        \"\"
                +    "
";
               
        document.getElementById("ejs_mv3_scroll_2").innerHTML = html;
        if(ejs_mv3_mode == 1)
            ejs_mv3_action(2);
    }
}
ejs_mv3_cursor = ejs_mv3_largeur;

function ejs_mv3_action(action)
{
    if(action == 2)
    {
        if( ejs_mv3_cursor > 0 )
        {
            ejs_mv3_cursor -= 10;
            document.getElementById("ejs_mv3_scroll_1").style.left = ejs_mv3_cursor - ejs_mv3_largeur;
            document.getElementById("ejs_mv3_scroll_2").style.left = ejs_mv3_cursor;
            setTimeout("ejs_mv3_action(" + action + ")",1);
            ejs_mv3_mode = 2;
        }
    }
    else
    {
        if( ejs_mv3_cursor < ejs_mv3_largeur )
        {
            ejs_mv3_cursor += 10;
            document.getElementById("ejs_mv3_scroll_1").style.left = ejs_mv3_cursor - ejs_mv3_largeur;
            document.getElementById("ejs_mv3_scroll_2").style.left = ejs_mv3_cursor;
            setTimeout("ejs_mv3_action(" + action + ")",1);
            ejs_mv3_mode = 1;
        }
    }
}

//window.onload = new Function("ejs_mv3_show("menu")");

-->

defilement_menu:

<!--
//images du manège
var pict = ["js/sodedat93.PNG",
    "js/qualite.jpg",
    "js/documents_types.png",
    "js/help.png"];
//lien des vignettes dans l'ordre des images ci dessus
var lien = ["sodedat();",
    "qualite();",
    "documents_types();",
    "help();"];
var angle 0, ll, hh, bcl, vit 0.05;
//taille des vignettes
var taille = 50;
//largeur de tout le manège
var largeur = 30*pict.length;
//hauteur de tout le manège
var hauteur = 40;

var ejs_mv3_largeur = 150;
var ejs_mv3_hauteur = 400;

function window_onload()
{
    for( i=1 ; i"
    }
   
    return move()
}

function move()
{
    ll=document.body.clientWidth/2
    hh=document.body.clientHeight/2
    angle=angle-vit
   
    for( i=1 ; iejs_mv3_show( "menu" , menu_societe , lien_societe ); // j'appelle une fonction du 1er script - le nombre d'argument est correct et ils sont pleins
}

function qualite()
{
    var menu_qualite = new Array;
    var lien_qualite = new Array;
   
    menu_qualite[0] = "Stratégie";
    menu_qualite[1] = "Management";
    menu_qualite[2] = "Recherche OPE";
    menu_qualite[3] = "Etudes";
    menu_qualite[4] = "Construction";
    menu_qualite[5] = "Juridique";
    menu_qualite[6] = "Financier";
    menu_qualite[7] = "Ressources";
    menu_qualite[8] = "Moyens";
   
    lien_qualite[0] = '';
    lien_qualite[1] = '';
    lien_qualite[2] = '';
    lien_qualite[3] = '';
    lien_qualite[4] = '';
    lien_qualite[5] = '';
    lien_qualite[6] = '';
    lien_qualite[7] = '';
    lien_qualite[8] = '';
    lien_qualite[0] += "Stratégie - machin1
";
    lien_qualite[1] += "Management - truc1
";
    lien_qualite[1] += "Management - truc2
";
    lien_qualite[1] += "Management - truc3
";
    lien_qualite[2] += "Recherche OPE - chose1
";
    lien_qualite[2] += "Recherche OPE - chose2
";
    lien_qualite[2] += "Recherche OPE - chose3
";
    lien_qualite[3] += "Etudes - machin1
";
    lien_qualite[3] += "Etudes - machin2
";
    lien_qualite[4] += "Construction - machin1
";
    lien_qualite[5] += "Juridique - machin1
";
    lien_qualite[6] += "Financier - machin1
";
    lien_qualite[7] += "Ressources - machin1
";
    lien_qualite[8] += "Moyens - machin1
";
   
    ejs_mv3_show( "menu" , menu_qualite , lien_qualite ); // j'appelle une fonction du 1er script - le nombre d'argument est correct et ils sont pleins
}

function documents_types()
{
    var doc_typ = new Array;
    doc_typ[0] = "Foncier";
    doc_typ[1] = "Marchés";
    doc_typ[2] = "Réponses de S93";
   
    ejs_mv3_show( "menu" , doc_typ ); // à ne pas prendre en compte
}

function help()
{
    var help = new Array;
    help[0] = "FAQ";
    help[1] = "Se former";
    help[2] = "Docs administrateur";
   
    ejs_mv3_show( "menu" , help ); // à ne pas prendre en compte
}

-->
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
B
onjour...
Le problème vient du fait qu'une fois tu appelles la fonction avec 3 arguments et plusieurs fois avec un seul argument
Pour les cas ou tu ne passe qu'un ou deus arguments il te faut tester leur existence

function ejs_mv3_show( menu , tab_menu , tab_lien ){
  if( tab_menu)    // test si existe
    for( var i= 0 ; i<tab_menu.length ; i++ ){
      ejs_mv3_menu[i] = tab_menu[i];
    }
  if( tab_lien)

   // test si existe





    for( var j =0 ; j<tab_lien.length ; j++ ){
      ejs_mv3_lien[j] = tab_lien[j];
  }

...etc...

J'ai fait un test rapide et cela a l'air de fonctionner, mais bon je ne connaît pas le résultat attendu...

;0)