J'ai fait une page test et elle passe nickel chrome avec IE 5.x et plus
mais pas du tout avec moz, elle est ici:
http://cult.free.fr/test_menu/test_menu_ytse.html
En fait, lorsque la souris est dans le menu du milieu qui apparait
lorsque la souris passe au niveau vertical de Catégores cela ne change
pas le background image.
Le code a incriminé est:
function bgmenu_on(up, id_on) {
var i = 0 ;
while(1) {
elements = document.getElementsByName('td_' + up + '_' + i) ;
if(elements.length != 0) {
if(i != id_on) {
elements[1].style.backgroundImage='url(menu_off.png)' ;
}
} else {
break;
}
i++ ;
}
elements = document.getElementsByName('td_' + up + '_' + id_on) ;
elements.item(1).style.backgroundImage='url(menu_on.png)' ;
}
Quand on rentre dans la dans le while on en sort direct elements.length
vaut zéro et la ligne:
elements.item(1).style.backgroundImage='url(menu_on.png)' ;
renvoie une erreur :(
pourquoi faire du javascript quand utiliser les css est si simple et si élégant?
Si tu savais...
Mathieu
Vincent M. wrote:
Quand on rentre dans la dans le while on en sort direct elements.length vaut zéro et la ligne: elements.item(1).style.backgroundImage='url(menu_on.png)' ; renvoie une erreur :(
IE et Opera considerent (a tord je crois, a verifier) que getElementsByName() doit prendre en compte l'attribut id. Mozilla n'utilise que l'attribut name. Accessoirement, ton truc est de toutes facons du bricolage (mix d'attributs genre background avec du css) et 1 pourrait etre fait avec des fonctions du DOM faites pour manipuler les tables, et 2 avec des CSS...
-- mat | www.openweb.eu.org | www.nekeme.net | arkhart.nekeme.net They can't stop us... we're on a mission from God! -- The Blues Brothers
Vincent M. wrote:
Quand on rentre dans la dans le while on en sort direct elements.length
vaut zéro et la ligne:
elements.item(1).style.backgroundImage='url(menu_on.png)' ;
renvoie une erreur :(
IE et Opera considerent (a tord je crois, a verifier) que
getElementsByName() doit prendre en compte l'attribut id. Mozilla
n'utilise que l'attribut name. Accessoirement, ton truc est de toutes
facons du bricolage (mix d'attributs genre background avec du css) et 1
pourrait etre fait avec des fonctions du DOM faites pour manipuler les
tables, et 2 avec des CSS...
--
mat | www.openweb.eu.org | www.nekeme.net | arkhart.nekeme.net
They can't stop us... we're on a mission from God!
-- The Blues Brothers
Quand on rentre dans la dans le while on en sort direct elements.length vaut zéro et la ligne: elements.item(1).style.backgroundImage='url(menu_on.png)' ; renvoie une erreur :(
IE et Opera considerent (a tord je crois, a verifier) que getElementsByName() doit prendre en compte l'attribut id. Mozilla n'utilise que l'attribut name. Accessoirement, ton truc est de toutes facons du bricolage (mix d'attributs genre background avec du css) et 1 pourrait etre fait avec des fonctions du DOM faites pour manipuler les tables, et 2 avec des CSS...
-- mat | www.openweb.eu.org | www.nekeme.net | arkhart.nekeme.net They can't stop us... we're on a mission from God! -- The Blues Brothers
Vincent M.
Mathieu wrote:
Vincent M. wrote:
Quand on rentre dans la dans le while on en sort direct elements.length vaut zéro et la ligne: elements.item(1).style.backgroundImage='url(menu_on.png)' ; renvoie une erreur :(
IE et Opera considerent (a tord je crois, a verifier) que getElementsByName() doit prendre en compte l'attribut id. Mozilla n'utilise que l'attribut name. Accessoirement, ton truc est de toutes facons du bricolage (mix d'attributs genre background avec du css) et 1 pourrait etre fait avec des fonctions du DOM faites pour manipuler les tables, et 2 avec des CSS...
Parfait,
J'ai mis ca dans le code HTML: <!-- LA DIV DU MENU A AFFICHER --> <div id="menui_-1"> <table id="table_-1" align="right" border="0" style="border-color:black" cellpadding="4" cellspacing="2" width="150"> <tr> <td nowrap id="td_-1_0" name="td_-1_0" background="menu_off.png" onMouseOver="if(document.all) this.style.cursor='hand' ; else this.style.cursor='pointer' ; bgmenu_on(-1, 0) ; " >Vacances</td></tr> ....etc.... </table> </div>
Sinon, c pas du bricolage, c à l'origine un algo récursif PHP qui génére la page et le javascript en fonction d'un fichier de config où se trouve les infos sur les catégories - sous-catégories que l'on peut managées via la partie Admin et ce à partir d'un simple navigateur. Y a une notion de profondeur et quand ce sera terminé y aura un effet d'affichage progressif des menus transparents (Attention ca rigole plus là) ;)
Merci encore, Vincent.
Mathieu wrote:
Vincent M. wrote:
Quand on rentre dans la dans le while on en sort direct
elements.length vaut zéro et la ligne:
elements.item(1).style.backgroundImage='url(menu_on.png)' ;
renvoie une erreur :(
IE et Opera considerent (a tord je crois, a verifier) que
getElementsByName() doit prendre en compte l'attribut id. Mozilla
n'utilise que l'attribut name. Accessoirement, ton truc est de toutes
facons du bricolage (mix d'attributs genre background avec du css) et 1
pourrait etre fait avec des fonctions du DOM faites pour manipuler les
tables, et 2 avec des CSS...
Parfait,
J'ai mis ca dans le code HTML:
<!-- LA DIV DU MENU A AFFICHER -->
<div id="menui_-1">
<table id="table_-1" align="right" border="0"
style="border-color:black" cellpadding="4" cellspacing="2" width="150">
<tr>
<td nowrap id="td_-1_0" name="td_-1_0" background="menu_off.png"
onMouseOver="if(document.all) this.style.cursor='hand' ; else
this.style.cursor='pointer' ; bgmenu_on(-1, 0) ; " >Vacances</td></tr>
....etc....
</table>
</div>
Sinon, c pas du bricolage, c à l'origine un algo récursif PHP qui génére
la page et le javascript en fonction d'un fichier de config où se trouve
les infos sur les catégories - sous-catégories que l'on peut managées
via la partie Admin et ce à partir d'un simple navigateur.
Y a une notion de profondeur et quand ce sera terminé y aura un effet
d'affichage progressif des menus transparents (Attention ca rigole plus
là) ;)
Quand on rentre dans la dans le while on en sort direct elements.length vaut zéro et la ligne: elements.item(1).style.backgroundImage='url(menu_on.png)' ; renvoie une erreur :(
IE et Opera considerent (a tord je crois, a verifier) que getElementsByName() doit prendre en compte l'attribut id. Mozilla n'utilise que l'attribut name. Accessoirement, ton truc est de toutes facons du bricolage (mix d'attributs genre background avec du css) et 1 pourrait etre fait avec des fonctions du DOM faites pour manipuler les tables, et 2 avec des CSS...
Parfait,
J'ai mis ca dans le code HTML: <!-- LA DIV DU MENU A AFFICHER --> <div id="menui_-1"> <table id="table_-1" align="right" border="0" style="border-color:black" cellpadding="4" cellspacing="2" width="150"> <tr> <td nowrap id="td_-1_0" name="td_-1_0" background="menu_off.png" onMouseOver="if(document.all) this.style.cursor='hand' ; else this.style.cursor='pointer' ; bgmenu_on(-1, 0) ; " >Vacances</td></tr> ....etc.... </table> </div>
Sinon, c pas du bricolage, c à l'origine un algo récursif PHP qui génére la page et le javascript en fonction d'un fichier de config où se trouve les infos sur les catégories - sous-catégories que l'on peut managées via la partie Admin et ce à partir d'un simple navigateur. Y a une notion de profondeur et quand ce sera terminé y aura un effet d'affichage progressif des menus transparents (Attention ca rigole plus là) ;)
Merci encore, Vincent.
laurent prevosto
Mathieu wrote:
Vincent M. wrote:
Quand on rentre dans la dans le while on en sort direct elements.length vaut zéro et la ligne: elements.item(1).style.backgroundImage='url(menu_on.png)' ; renvoie une erreur :(
IE et Opera considerent (a tord je crois, a verifier) que getElementsByName() doit prendre en compte l'attribut id.
Et vice-versa (pour IE en tout cas).
(...)
lp
Mathieu wrote:
Vincent M. wrote:
Quand on rentre dans la dans le while on en sort direct
elements.length vaut zéro et la ligne:
elements.item(1).style.backgroundImage='url(menu_on.png)' ;
renvoie une erreur :(
IE et Opera considerent (a tord je crois, a verifier) que
getElementsByName() doit prendre en compte l'attribut id.
Quand on rentre dans la dans le while on en sort direct elements.length vaut zéro et la ligne: elements.item(1).style.backgroundImage='url(menu_on.png)' ; renvoie une erreur :(
IE et Opera considerent (a tord je crois, a verifier) que getElementsByName() doit prendre en compte l'attribut id.