Code javascript incompatible avec firefox

Résolu/Fermé
skykiller31 Messages postés 112 Date d'inscription dimanche 20 avril 2008 Statut Membre Dernière intervention 5 août 2011 - 31 déc. 2009 à 15:34
skykiller31 Messages postés 112 Date d'inscription dimanche 20 avril 2008 Statut Membre Dernière intervention 5 août 2011 - 3 janv. 2010 à 18:04
Bonjour,
voici mon code qui fonctionne parfaitement sur IE7:

<td width="165" align="center" class="a" onmouseover="this.style.setAttribute('backgroundImage','url(../images/bg-barre menu.png)');" onmouseout="this.style.setAttribute('backgroundImage','')"><a href="#">lien</a></td>


mais sur google chrome ou firefox le changement de background au passage du curseur ne fonctionne plus.

j'espère qu'il y a qq1 qui sait le petit détail qui manque à mon code pour qu'il soit compris par ces deux navigateurs.

merci à vous tous ;)
A voir également:

11 réponses

notobe Messages postés 1952 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 8 juillet 2011 213
31 déc. 2009 à 15:54
C'est tellement plus facile en CSS... (en dehors du fait qu'effectivement, sans espaces, ça marche mieux...)

<td><a href="#">lien</a></td> 

CSS :
td {
text-align:center;
width:165px;
}
td a {
display:block;
background-image:url(../images/bg-barre-menu.png);
}
td a:hover {
background-image:none;
}
1
JessayeDeTrouver Messages postés 270 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 4 mai 2012 47
31 déc. 2009 à 15:44
bg-barre menu.png => renomme tes images, car il ne faut pas qu'il y ai d'espace dans le nom
0
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
31 déc. 2009 à 16:08
Bonjour,

Et de toute façon, la fonction this.style.setAttribute n est pas bien géré par Firefox :p

et comme dit notobe.. c est tellement plus facile (et + clair) en CSS :)
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
31 déc. 2009 à 16:54
.style.setAttribute ?
Depuis quand les propriétés CSS sont des attributs ?

setAttribute est à utiliser comme ça (exemples) :
element.setAttribute('style','background-image:url("image.png");');
element.setAttribute('id','identifiant_unique');
...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
skykiller31 Messages postés 112 Date d'inscription dimanche 20 avril 2008 Statut Membre Dernière intervention 5 août 2011 5
1 janv. 2010 à 00:21
merci bcp messieurs pour vos aides ;) c noté!
en ce qui concerne le CSS si seulement ça me donnait ce que je voulais faire j'allais meme pas m'attaquer à javascript.
donc l'objectif recherché n'est pas satisfait par le CSS.
par contre j'ai rectifié la syntaxe du code javascript et malgré cela ça ne marche toujours pas.

voici un code qui marche tres bien sur les deux navigateurs google chrome et firefox:

<td valign="middle" onmouseover="this.setAttribute('style','background:#CCCCCC');" onmouseout="this.setAttribute('style','background:#')"><a href="../mapage.php">LIEN</a></td>

le résultat de ce code est que toute la cellule prend une couleur en background au passage du curseur et en CSS on peut faire pareil mais l'inconvénient est que cet arriere-plan ne couvre pas toute la cellule donc je me tourne automatiquement vers javascript.

voyez vous un peu ce que je cherche à faire?
0
notobe Messages postés 1952 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 8 juillet 2011 213
3 janv. 2010 à 16:27
Le code CSS que je t'ai donné fonctionne parfaitement, le chgt de background est bien sur toute la cellule.
L'as-tu testé au moins ?
0
skykiller31 Messages postés 112 Date d'inscription dimanche 20 avril 2008 Statut Membre Dernière intervention 5 août 2011 5 > notobe Messages postés 1952 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 8 juillet 2011
3 janv. 2010 à 16:40
oui absolument et le background se limite au nombre de ligne qu'il y a dans la cellule et non pas la surface entiere de la cellule c'est pour ça que je code en javascript meme si je connais pas les bases.
0
notobe Messages postés 1952 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 8 juillet 2011 213 > skykiller31 Messages postés 112 Date d'inscription dimanche 20 avril 2008 Statut Membre Dernière intervention 5 août 2011
3 janv. 2010 à 17:15
Attends là : est-ce que tu veux dire que dans ta cellule il n'y a pas qu'un lien, mais un mélange de texte et de lien ? Voire que du texte ?
0
skykiller31 Messages postés 112 Date d'inscription dimanche 20 avril 2008 Statut Membre Dernière intervention 5 août 2011 5 > notobe Messages postés 1952 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 8 juillet 2011
3 janv. 2010 à 17:18
non il n'y a qu'un lien et le background s'affiche derriere le lien et aux deux cotés mais pas plus
0
notobe Messages postés 1952 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 8 juillet 2011 213 > skykiller31 Messages postés 112 Date d'inscription dimanche 20 avril 2008 Statut Membre Dernière intervention 5 août 2011
3 janv. 2010 à 17:24
Ah... Mais tu nous dis tout mais en plusieurs fois ;)
S'il n'y a pas qu'un lien, alors oui, effectivement, ça ne marchera pas.

Deux solutions :
- le code js d'avion
- mettre un td:hover, au lieu d'un td a:hover (mais qui ne fonctionne pas avec IE6)
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
1 janv. 2010 à 01:07
this.setAttribute('style','background:#')

Mets "none" à la place de "#"
0
skykiller31 Messages postés 112 Date d'inscription dimanche 20 avril 2008 Statut Membre Dernière intervention 5 août 2011 5
1 janv. 2010 à 02:17
on peut mettre "none" ou "#" ou mm "" ça fini par laisser l'arrière plan par défaut tranquille
à part ça tu ne vois pas comment faire en javascript pour avoir le resultat que je cherche?
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
1 janv. 2010 à 14:41
<td valign="middle" onmouseover="this.style.background = '#CCCCCC';" onmouseout="this.style.background = 'none';">
0
skykiller31 Messages postés 112 Date d'inscription dimanche 20 avril 2008 Statut Membre Dernière intervention 5 août 2011 5
3 janv. 2010 à 16:09
merci pour le conseil mais je t'ai demandé comment faire pour changer l'arriere plan de toute la cellule sur firefox et google chrome.
0
notobe Messages postés 1952 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 8 juillet 2011 213
3 janv. 2010 à 16:43
Idem que pour le code CSS, ce js fonctionne tout autant.
Tu testes vraiment les solutions qu'on te donne ?????
0
skykiller31 Messages postés 112 Date d'inscription dimanche 20 avril 2008 Statut Membre Dernière intervention 5 août 2011 5 > notobe Messages postés 1952 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 8 juillet 2011
3 janv. 2010 à 16:57
ah oui absolument je teste et j'essaie de modifier le code avec un peu de change on peut y arriver mais le code que j'ai mis dans le 1er post il fonctionne parfaitement sur IE7 et c'est ce resultat meme q je cherche à produire sur firefox et google chrome et en CSS je n'arrive pas à l'avoir.
0
notobe Messages postés 1952 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 8 juillet 2011 213
3 janv. 2010 à 17:07
Il y a vraiment un problème alors...

Mon code CSS fonctionne (toute la cellule change, et pas seulement le lien)
Le code js d'avion fonctionne (j'ai testé, ça marche à merveille)

Soit les modifs que tu fais cassent tout, soit tes FF et Chrome sont buggés pour une raison mystérieuse, soit il y a autre chose dans ton code qui pollue le résultat.
0
skykiller31 Messages postés 112 Date d'inscription dimanche 20 avril 2008 Statut Membre Dernière intervention 5 août 2011 5
3 janv. 2010 à 17:11
mmmmmmmmmmm je vois....
je vais tester cette fois-ci en page propre en dehors de mon site et je te dirai ce qui se passe ;)
merci pour tes reponses :)
0