Problème pour changer le document.bgColor dans IE

Signaler
Messages postés
2
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
9 janvier 2009
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour,

J'ai réalisé un site web en flash. Dans l'une des rubriques du site web, je souhaitais changer la couleur de fond de ma page HTML ainsi que la couleur du texte de ma page HTML à partir de mon animation flash. J'ai donc fais appel à une fonction javascript afin d'attribuer la nouvelle couleur de fond grâce à document.bgColor ...

Mon problème :
- sous Firefox : la couleur background de la page et la couleur du texte sont changées comme il faut. Tout marche.
- sous Internet Explorer : la couleur du texte est changée comme il faut, mais la couleur background de la page ne change pas !!!
Pourtant j'utilise exactement la même méthode pour changer la couleur de fond de la page et la couleur de texte...

Voici le code que j'ai inséré dans mon animation Flash :

getURL("JavaScript:changeBgColor('#424240')");
getURL("JavaScript:changeFgColor('#FFFFFF')");




Voici le code que j'ai inséré dans ma page HTML :


<script language="JavaScript">
<!--
function changeBgColor(newBgColor) {
if (window.document && window.document.bgColor) {
document.bgColor = newBgColor;
}
}
function changeFgColor(newFgColor) {
if (window.document && window.document.fgColor) {
document.fgColor = newFgColor;
}
}
-->
</script>




Qu'est-ce qui pourrait être à l'origine de ce non-fonctionnement sous IE ???
Merci par avance pour votre aide précieuse !!!

NB : Si vous le souhaitez, vous pouvez comparez l'effet avec ces deux navigateurs en vous connectant sur la page en question : www.francoisdupont.fr
Cliquez ensuite sur le bouton "photo" en bas de l'interface.

3 réponses

Messages postés
2
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
9 janvier 2009

Après une série d'essais improbables, j'ai trouvé une solution :

J'ai simplement modifié la partie côté FLASH de la manière suivante :
- avant, l'intégralité de mon code côté FLASH se situait sur la même image clé
- maintenant, j'ai mis le code pour changer la couleur du texte sur une image clé, et le code pour changer la couleur de fond sur l'image d'après !!!

En effet, il semblerait que lorsque l'on met sur une même image...
getURL("JavaScript:changeBgColor('#424240')");
getURL("JavaScript:changeFgColor('#FFFFFF')");
... IE ne tienne compte que du deuxième appel getURL mais pas du premier, contrairement à Firefox qui prend en compte les deux getURL

Donc il faut mettre sur une première image seulement ...
getURL("JavaScript:changeFgColor('#FFFFFF')");
... et sur une seconde image seulement :
getURL("JavaScript:changeBgColor('#424240')");

C'est totalement idiot mais ça fonctionne maintenant sur les deux navigateurs !!!

NB: Cependant si qqn a trouvé une autre solution et explication, cela m'intéresse aussi de la connaître.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
donc problème vient d'ailleurs....
car :

    texte
    <script type="Text/JavaScript">
        function changeBgColor(newBgColor) {
        if (window.document && window.document.bgColor) {
        document.bgColor = newBgColor;
            }
        }
        function changeFgColor(newFgColor) {
        if (window.document && window.document.fgColor) {
        document.fgColor = newFgColor;
            }
        }
        changeBgColor('#00FF00');
        changeFgColor('#FF0000');
    </script>

ça baigne parfaitement.
( je ne sais pas si les tests servent à quoi que ce soit... )

mais qu'en est-il de  ce getUrl ?  va savoir...

Cordialement

          [mon Site] [M'écrire]  Bul         
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
Bonjour à vous,
- pourquoi document.bgColor et non document.body.bgColor, il peut y
avoir conflit...
exemple :
<html>
<head>
<style type="text/css">
body
{
  background-color : red;
  color : white;
}
</style>

</head>

texte
<script
type="Text/JavaScript">
function changeBgColor(newBgColor) {
  if
(window.document && window.document.bgColor) {
    document.bgColor
= newBgColor;
  }
}
function changeFgColor(newFgColor) {
  if
(window.document && window.document.fgColor) {
    document.fgColor
= newFgColor;
  }
}
changeBgColor('#00FF00');

changeFgColor('#FF0000');
</script>


</html>
- pourquoi ne pas passer donald, heu pardon plutôt,
par une modification du style.backgroundColor, plus actuel...

Mais ce
que Jean dit il le dit...
;O)