Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pbs javascript avec Mozilla.

6 réponses
Avatar
Vincent M.
Salut,

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 :(

Quelqu'un a une idée ?

Merci,
Vincent.

6 réponses

Avatar
Jean-Max Reymond
Vincent M. wrote:



Quelqu'un a une idée ?




la console javascript indique:
Error: elements.item(1) has no properties
Source File: http://cult.free.fr/test_menu/test_menu_ytse.html
Line: 79


--
Jean-Max Reymond
dernière éruption de l'Etna: http://jmreymond.free.fr/Etna2002
Avatar
Jean-Max Reymond
Vincent M. wrote:



Quelqu'un a une idée ?

Merci,
Vincent.




pourquoi faire du javascript quand utiliser les css est si simple et si
élégant?

--
Jean-Max Reymond
dernière éruption de l'Etna: http://jmreymond.free.fr/Etna2002
Avatar
Vincent M.
Jean-Max Reymond wrote:
Vincent M. wrote:



Quelqu'un a une idée ?

Merci,
Vincent.




pourquoi faire du javascript quand utiliser les css est si simple et si
élégant?




Si tu savais...
Avatar
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
Avatar
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.
Avatar
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