Pour un menu javascript dynamique horizontal multiniveaux j'utilise 2 balises DIV identifiées topdeck1 et topdeck2 représentées par les variable skn1 et skn2. Afin de simplifier le script (pb d'intranet très très lent) je voudrai regrouper les 2 Fct qui les pilotes suivant modèle ci joint.
if (nava) { skn1 = document.topdeck1;
skn2 = document.topdeck2;}
else if (dom ) { skn1 = document.getElementById("topdeck1").style;
skn2 = document.getElementById("topdeck2").style;}
else if (iex ) { skn1 = topdeck1.style;
skn2 = topdeck2.style;}
//affichage du menu 1er niveau******
function pop1()
{skn1.visibility="hidden";
skn1.left=posXmenu+offsetX+pos1;
if (nava)
{skn1.document.write(content);
skn1.document.close();}
else if (dom)
{document.getElementById("topdeck1").innerHTML = content;}
else if (iex)
{document.all("topdeck1").innerHTML = content;}
skn1.visibility = "visible";
}
//affichage du menu 2ème niveau******
function pop2()
{skn2.visibility="hidden";
skn2.left=posXmenu+offsetX+pos1+120
skn2.top = posYmenu+offsetY+pos2;
if (nava)
{skn2.document.write(content);
skn2.document.close();}
else if (dom)
{document.getElementById("topdeck2").innerHTML = content;}
else if (iex)
{document.all("topdeck2").innerHTML = content;}
skn2.visibility = "visible";
}
//affichage du menu standard******
function pop(n)
{with('skn'+n)
{
// .visibility="hidden";
// .left=posXmenu+offsetX+pos1;
// if (nava)
// {.document.write(content);
// .document.close();}
// else if (dom)
// {document.getElementById("topdeck"+n).innerHTML = content;}
// else if (iex)
// {document.all("topdeck"+n).innerHTML = content;}
// .visibility = "visible";
}
}
if (nava) { skn1 = document.topdeck1;
skn2 = document.topdeck2;}
else if (dom ) { skn1 = document.getElementById("topdeck1").style;
skn2 = document.getElementById("topdeck2").style;}
else if (iex ) { skn1 = topdeck1.style;
skn2 = topdeck2.style;}
//affichage du menu 1er niveau******
function pop1()
{skn1.visibility="hidden";
skn1.left=posXmenu+offsetX+pos1;
if (nava)
{skn1.document.write(content);
skn1.document.close();}
else if (dom)
{document.getElementById("topdeck1").innerHTML = content;}
else if (iex)
{document.all("topdeck1").innerHTML = content;}
skn1.visibility = "visible";
}
//affichage du menu 2ème niveau******
function pop2()
{skn2.visibility="hidden";
skn2.left=posXmenu+offsetX+pos1+120
skn2.top = posYmenu+offsetY+pos2;
if (nava)
{skn2.document.write(content);
skn2.document.close();}
else if (dom)
{document.getElementById("topdeck2").innerHTML = content;}
else if (iex)
{document.all("topdeck2").innerHTML = content;}
skn2.visibility = "visible";
}
//affichage du menu standard******
function pop(n)
{with('skn'+n)
{
// .visibility="hidden";
// .left=posXmenu+offsetX+pos1;
// if (nava)
// {.document.write(content);
// .document.close();}
// else if (dom)
// {document.getElementById("topdeck"+n).innerHTML = content;}
// else if (iex)
// {document.all("topdeck"+n).innerHTML = content;}
// .visibility = "visible";
}
}