Lien entre 2 scripts

arnaultp Messages postés 29 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 25 juillet 2007 - 26 juin 2007 à 16:17
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 27 juin 2007 à 17:39
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

WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010
26 juin 2007 à 22:27
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.
++
0
arnaultp Messages postés 29 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 25 juillet 2007
27 juin 2007 à 09:15
0
arnaultp Messages postés 29 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 25 juillet 2007
27 juin 2007 à 09:23
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
}

-->
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
27 juin 2007 à 17:39
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)
0
Rejoignez-nous