Votre question

[Résolu] (JavaScript) Pb d'affichage entre IE et Mozilla/Opéra

Tags :
  • Javascript
  • Programmation
Dernière réponse : dans Programmation
7 Novembre 2005 22:33:45

Bonsoir à tous!!

Je découvre votre site à l'instant, et je m'y attarde donc dans l'espoir de trouver une réponse à mon problème!

Pour être clair, j'ai un souci d'affichage pour un code en JavaScript que j'ai récupéré.

Sous Mozilla/Opéra, et autres, aucun souci, tout s'affiche comme il se devrait. En revanche, sous Microsoft Explorer, ca ne s'affiche pas comme prévu!

Tout d'abord, le code de la fonction Java:

<*script>
function toggle(toggleId, e)
{
if (!e) {
e = window.event;
}
if (!document.getElementById) {
return false;
}
var body = document.getElementById(toggleId);
if (!body) {
return false;
}
var im = toggleId + \"_toggle\";
if (body.style.display == 'none') {
body.style.display = 'block';
if (document.images[im]) {
document.images[im].src = \"images/objets/minus.png\";
}
} else {
body.style.display = 'none';
if (document.images[im]) {
document.images[im].src = \"images/objets/plus.png\";
}
}
if (e) {
// Stop the event from propagating, which
// would cause the regular HREF link to
// be followed, ruining our hard work.
e.cancelBubble = true;
if (e.stopPropagation) {
e.stopPropagation();
}
}
}
</script>

Ensuite, l'affichage qui apparâit sur l'écran:

<div onClick=\"toggle('1', event)\">
<img src=\"images/objets/plus.png\" name=\"1_toggle\">
B. The second heading.
</div>
<div id=\"1\" style=\"display:none;\">
<div onClick=\"toggle('1_a', event)\">
1. The first entry under the second heading.
</div>";

Sous Mozilla et Opéra, lorsqu'on clique sur l'image plus.png, le texte "1. The first entry under the second heading" apparait en dessous de "B. The second Heading", et la petite image plus.png, devient minus.png..

Sous IE; la petite image ne change pas! SAUF si je remplace la variable "1" dans "1_toggle" par exemple par une lettre ou un mot.. (ce qui m'arrange point..)

Bon courage! ;-)

Autres pages sur : resolu javascript affichage mozilla opera

7 Novembre 2005 23:37:19

Voila, je l'ai testé et çà fonctionne:

function toggle(toggleId, e)
{
if (!e) {
e = window.event;
}
if (!document.getElementById) {
return false;
}
var body = document.getElementById(toggleId);
if (!body) {
return false;
}
var im = toggleId + "_toggle";
if (body.style.display == 'none') {
body.style.display = 'block';
if (document.images[im]) {
document.images[im].src = "images/images/objets/minus.png";
}
} else {
body.style.display = 'none';
if (document.images[im]) {
document.images[im].src = "images/images/objets/plus.png";
}
}
if (e) {
// Stop the event from propagating, which
// would cause the regular HREF link to
// be followed, ruining our hard work.
e.cancelBubble = true;
if (e.stopPropagation) {
e.stopPropagation();
}
}
}
</script>
</head>
<BODY>
<div onClick='toggle("1",event)'>
<img src='images/bulrouge.gif' name='a_toggle'>
B. The second heading.
</div>
<div id='1' style='display:none;'>
<div onClick='toggle("1_a", event)'>
1. The first entry under the second heading.
</div>;

En fait, il refusait le back-slash aux commandes java: document.images[im].src
et aussi dans la partie BODY
8 Novembre 2005 01:26:22

Merci pour la réponse rapide, malheureusement le script s'est entêté à m'embêter... Le résultat n'a pas changé et est visible ici:

LIEN
(L'image ne change pas sous IE uniquement)

Désolé de vous embêter avec ca!!
8 Novembre 2005 01:31:31

Pb résolu!! Afin de faire passer le chiffre, j'ai simplement modifié :

var im = toggleId + "_toggle";

en

var im = toggleId + "toggle";

et de même pour celui-ci:

<img src='images/objets/plus.png' name='1_toggle'>

qui devient

<img src='images/objets/plus.png' name='1toggle'>

Merci pour votre aide! :-D
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS