Bonjour,
Voici ma page html complète :

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
110
111
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="pragma" content="no-cache">
<style type="text/css">
ul,li{list-style:none;}
</style>
 
<script language="JavaScript">
<!--
var expanded = null;
var memopen = null;
var expandedsubs;
var memosubs;
 
function SwitchMenu(id){
var expand = document.getElementById(id);
 
if(expand.style.display != "block"){
//open
if(expanded != null){ //if a menu is already shown
//is there a memo ?
if(memopen != null){
//yes :
//am I a sub of memo ?
var issub = false;
memosubs = memopen.getElementsByTagName("ul");
for (var i=0; i<memosubs.length; i++){
if(memosubs.id == expand.id){issub = true;}
}
if(issub == true){
//yes :
//close expanded
expanded.style.display = "none";
// memo stray the same
}else{
//no :
//close memo and all its subs
memopen.style.display = "none";
memosubs = memopen.getElementsByTagName("ul");
for (var i=0; i<memosubs.length; i++){
memosubs.style.display = "none";
}
//destroy memo pointer
memopen = null;
}
}else{
//no :
//is current menu a sub of expanded ?
var issub = false;
expandedsubs = expanded.getElementsByTagName("ul");
for (var i=0; i<expandedsubs.length; i++){
if(expandedsubs.id == expand.id){issub = true;}
}
if(issub == true){
//yes :
//dont close expanded
memopen = expanded;
//memo becomes expanded
}else{
//no :
//close expanded
expanded.style.display = "none";
}
}
}
//show current menu
expand.style.display = "block";
//expanded becomes expand
expanded = expand;
}else{
expand.style.display = "none";
}
}
 
</script>
</head>
<body>
 
<div id='LayerNav' style='position:absolute; left:-30px; z-index:1'>
<ul id='menulink'>
<li onclick="SwitchMenu('menu1')"><a href="#">menu1</a></li>
<ul id='menu1' style='display:none; text-indent:-35px'>
<li onclick="SwitchMenu('submenu11')"><a href="#">submenu11</a></li>
<ul id='submenu11' style='display:none; text-indent:-65px'>
<li><a href="www.google.com">link1</a></li>
<li><a href="www.google.com">link2</a></li>
</ul>
<li onclick="SwitchMenu('submenu12')"><a href="#">submenu12</a></li>
<ul id='submenu12' style='display:none; text-indent:-65px'>
<li><a href="www.google.com">link1</a></li>
</ul>
</ul>
<li onclick="SwitchMenu('menu2')"><a href="#">menu2</a></li>
<ul id='menu2' style='display:none; text-indent:-35px'>
<li onclick="SwitchMenu('submenu21')"><a href="#">submenu21</a></li>
<ul id='submenu21' style='display:none; text-indent:-65px'>
<li><a href="www.google.com">link1</a></li>
<li><a href="www.google.com">link2</a></li>
</ul>
<li onclick="SwitchMenu('submenu22')"><a href="#">submenu22</a></li>
<ul id='submenu22' style='display:none; text-indent:-65px'>
<li><a href="www.google.com">link1</a></li>
</ul>
</ul>
</ul>
</div>
</body>
</html>

Tout fonctionne sous Firefox mais avec IE il semble que la fonction est appelée 2 fois de suite !
Je ne comprend vraiment pas le problème.
Merci de votre aide.