OnMouseOver ne passe pas avec IE ou avec <a></a> ?probleme [Résolu]

Signaler
Messages postés
29
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
17 septembre 2010
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour tout le monde!

Bon en fait j'ai une page .htm qui appelle un script .js, et qui utilise une feuille de style style.css. (le truc classique...)


Dans mon .js, je fais la création d'un menu dynamique vertical. (just pour l'info ;) )

Le truc c'est qu'avec le code suivant (c'est just une partie, celle ou ca foire...)

if(document.getElementById)

if(a==0)

{


mv_aff += "<TR><TD
BGCOLOR="+bgcolor+">"+mv_menu[a]+"</TD></TR>";

if(selected)

mv_aff += "mv11style";

else

mv_aff += "mv1style";


mv_aff +=
">"+mv_menu[a]+"</TD></TR>";

}

else patatta...la...suite...



Ce code fonctionne tres bien avec firefox et plein d'autre navigateur
web (meme safari sous mac), mais alors avec IE, ca coince dure. je
m'explique :

sous IE, la fonction onmouseover marche (cad que elle fait son boulot
de réafficher le text avec le bon style), mais je sais pas pourquoi et
c'est la mon problème :

j'ai beau cliquer sur le text (qui est un lien de part le href) et bien
ca ne fait strictement rien! ca n'ouvre pas la page du lien. j'ai
tester de virer le onmouseover, et la ca marche. Donc j'en déduis que
IE n'aime pas trop le onmouseover.



Si quelqu'un pouvait m'expliquer comment effectuer le contenu du
onMouseOver, tout en faisant en sorte que le lien hypertext fonctionne
(sous IE) je vous en remercierais énormément! (ca fait presque
3semaines que je tourne le truc dans tout les sens..)

Merci!!!!
Dohz

7 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Attention :

...l'événement onmouseover se répéte tant que tu est sur le lien aussi il faut gérer le fait que tu redraw() quelquechose de déjà redrawer...

donc pour les menu 0 et 4 il est nécessaire de vérifier

if( mv_pos != a) mv_aff +"..." avec " onMouseOver"mv_pos= "+a+"; mv_menu_draw();"
else
mv_aff += "..." sans "<strike> </strike>
<strike>onMouseOver ="mv_pos="+a+"; mv_menu_draw();\</strike>"

I hope is GOOD after that ;0)))
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Tu devrais d'abord insérer la fonction alert(); dans ton code pour vérifier la chaine écrite...

exemple :
if(a==0

{
...
alert(mv_aff ); // là tu regardes la justesse de ta chaine guillemets, variable....
}

NOTA: alert(); fait partie des meilleurs debugger...
Messages postés
29
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
17 septembre 2010

Salut! merci pour ta réponse (c'est vrai que j'y avais pas pensé!)

Donc aprés analyse, ben ya rien d'anormal, je comprend pas pour IE ne veut rien savoir!

le pire c'est que lorsqu'on click sur le lien il se passe rien, mais si
on fait "ouvrir la cible dans une nouvelle page" ELLE S'AFFICHE!! donc
il est conscient qu'il ya bien un lien (qui fonctionne qui plus est)
mais il veut pas l'executer apartir du menu...

grrr, foutu IE! je met le code de tout le .js si ca peut aider ...



mv_menu = new Array();

mv_lien = new Array();



mv_menu[0] = 'Les Liens';

mv_menu[1] = 'Calligraphie';

mv_menu[2] = 'Kendo';

mv_menu[3] = 'Actualité des arts martiaux';

mv_menu[4] = 'Points vitaux';



mv_lien[1] = '[calligraphie.htm -- Histoire]
';

mv_lien[1] += '[Hiragana.htm -- Hiragana]
';

mv_lien[1] += '[katakana.htm -- Katakana]
';

mv_lien[2] = '[presentation_du_kendo.htm -- Définition]
';

mv_lien[2] += '[histoire_du_kendo.htm -- Histoire]
';

mv_lien[2] += '[equipement_de_kendo.htm -- Equipement]
';

mv_lien[2] += '[pratique_du_kendo.htm -- Pratique]
';

mv_lien[2] += '[grades_de_kendo.htm -- Grades et compétition]
';

mv_lien[3] = '[Actualite_am_cinema.htm -- Cinéma]
';

mv_lien[3] += '[Actualite_am_video.htm -- Video]
';

mv_lien[3] += '[Actualite_am_litterature.htm -- Littérature]
';

mv_lien[3] += '[Actualite_am_bd.htm -- BD]
';

mv_lien[3] += '[Actualite_am_evenement.htm -- Evènements]
';





mv_pos = -1;



function mv_menu_draw()

{

mv_aff = "<TABLE
BORDER=0 CELLPADDING=03 CELLSPACING=0 WIDTH=100%>";

for(a=0 ; a<mv_menu.length ; a++)

{

if (mv_pos == a || !document.getElementById)

{bgcolor = "#CCCCCC"; selected=true;}

else

{bgcolor = "#FFFFFF"; selected=false;}

if(document.getElementById)

if(a==0)

{

mv_aff += "----, \"+mv_menu[a]+\"</TD>\";

if(selected)

mv_aff += \"mv11style\";

else

mv_aff += \"mv1style\";

mv_aff +=
\">\"+mv_menu[a]+\"</TD>\";

}

else

if(a==4)

{

mv_aff += \"----
"+mv_menu[a]+", \";

if(selected)

mv_aff +=
\"mv11style\";

else

mv_aff +=
\"mv1style\";

mv_aff +=
\">\"+mv_menu[a]+\"</TD>\";

}

else

{

mv_aff += \"----
"+mv_menu[a]+", \";

if(selected)

mv_aff +=
\"mv11style\";

else

mv_aff +=
\"mv1style\";

mv_aff +=
\">\"+mv_menu[a]+\"</TD>\";

}

else

mv_aff +=
\"----
"+mv_menu[a]+", \";

if(mv_pos == a || !document.getElementById)

if(a!=0 && a!=4)

mv_aff += \"----
"+mv_lien[a]+", \";

}

mv_aff += "
</TD></TR></TABLE>";

if(document.getElementById)

document.getElementById("mv").innerHTML = mv_aff;

else

document.write(mv_aff);

}



mv_menu_draw();
-----------------------------------------------------------------------------

Voila, mais je vois pas du tout pourquoi IE veut pas faire ce que les
autres navigateur font! la norme w3c ? ca m'étonnerai quand meme. C'est
pas du code de folie!lol

merci pour votre coup de main!

please help!




Dohz
Messages postés
29
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
17 septembre 2010

Tres bien vu man!

C'était carément ca!!! merci beaucoup!

je l'avais pas vu le coup de redraw un truc redrawer!

T'es un dieu! merci!
Dohz
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
L'expérience ne fait pas de nous des DIEUX...
Le fait de savoir et de partager nous rend accessible, ce qui est le contraire des DIEUX...
Messages postés
29
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
17 septembre 2010

LOL, bon en effet vu comme ca : c'est pas faux!

Mais bon, jte remercie quand même pour ton aide.

Si jpeux te rendre l'appareil, fais moi signe!

Dohz
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Je ne vois pas de quel appareil tu parles, mais si tu veux à tout prix me le rendre je n'y vois pas d'inconvénient...

> sans Y cette fois
Celui qui a le savoir est RESPECTABLE...

Celui qui le partage est RESPECT...

>
Merci et A+ sur le Forum...
;0)