Problème pour changer le document.bgColor dans IE

scratchdesign Messages postés 2 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 9 janvier 2009 - 9 janv. 2009 à 16:52
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 10 janv. 2009 à 09:21
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

scratchdesign Messages postés 2 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 9 janvier 2009
9 janv. 2009 à 17:43
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.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
10 janv. 2009 à 07: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         
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
10 janv. 2009 à 09:21
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)
0
Rejoignez-nous