OVH Cloud OVH Cloud

[HELP] Problème de rafraichissement de couleurs

22 réponses
Avatar
John
Bonjour,
j'ai fait un script pour réŽviser du voc qui affiche alŽatoirement
les éŽléŽments d'une liste (voir ci-dessous). Le problème c'est que je
voudrais que les couleurs du texte, du fond de tableau et même du fond
de fenêtre, puissent changer aléŽatoirement ˆà condition que la
variable Bmod (par ex.) soit ˆ 1. Or le texte change mais pas ces
couleurs qui sont donnŽées une fois pour toutes. Quelqu'un pourrait-il
me dire ce qui cloche?

Merci d'avance,

John


<html><head>
<meta name=appl centent=linguae>
<script language='javascript'>
var Colors=new Array();
var Version=new Array();
var Theme=new Array();
var Question;
var Answer;
var Sense=1;
var Qptr;
var Bptr;
var Pcol="CCCCCC";
var Bcol="";
var Fcol="006666>";
var Pmod="";
var Bmod="1";
var Fmod="";

Colors[0]="00FF00";
Colors[1]="009933";
Colors[2]="006666";
Colors[3]="33FFCC";
Colors[4]="00FFFF";
Colors[5]="33CCCC";
Colors[6]="0099FF";
Colors[7]="0033FF";
Colors[8]="663399";
Colors[9]="9933CC";
Colors[10]="CC33FF";
Colors[11]="660066";
Colors[12]="999966";
Colors[13]="996666";
Colors[14]="996600";
Colors[15]="660000";
Colors[16]="FFCCCC";
Colors[17]="FF3366";
Colors[18]="CC0000";
Colors[19]="990000";
Colors[20]="FFFF99";
Colors[21]="FFFF00";
Colors[22]="FFCC00";
Colors[23]="FF9900";
Colors[24]="000000";
Colors[25]="CCCCCC";
Colors[26]="CCCC00";
Colors[27]="FFFFFF";

Version[0]="&#960;&#945;&#953;&#948;&#949;&#8059;&#969; ";
Theme[0]=" j'&eacute;duque, j'&eacute;l&egrave;ve";
Version[1]="&#955;&#8051;&#947;&#969; ";
Theme[1]=" je dis, je parle, j'appelle";
Version[2]="&#947;&#961;&#8049;&#966;&#969; ";
Theme[2]=" j'&eacute;cris, je dessine";
Version[3]="&#7973;&#954;&#969; ";
Theme[3]=" je viens, je suis l&agrave;";
Version[4]="&#955;&#949;&#8055;&#960;&#969; ";
Theme[4]=" je laisse, je quitte";
Version[5]="&#966;&#8051;&#961;&#969; ";
Theme[5]=" je porte, j'apporte, je supporte";
Version[6]="&#956;&#8051;&#957;... &#948;&#8051; ";
Theme[6]=" d'une part... d'autre part; (certes)... mais; ... et...";
Version[7]="&#954;&#945;&#8055; ";
Theme[7]=" et; m&ecirc;me, aussi";
Version[8]="&#957;&#8166;&#957; ";
Theme[8]=" maintenant";
Version[9]="&#7956;&#960;&#949;&#953;&#964;&#945; ";
Theme[9]=" ensuite";
Version[10]="&#960;&#945;&#953;&#948;&#949;&#8059;&#949;&#964;&#949; ";
Theme[10]=" est-ce que vous &eacute;duquez?";

function Disp(fld1,fld2){
Qptr = Math.round(Math.random()*(Theme.length-1));
if (Sense == 1) { Question = Theme[Qptr] }
if (Sense == 2) { Question = Version[Qptr] }
if (Bmod == 1) {
Bptr = Math.round(Math.random()*(Colors.length-1));
Bcol = Colors[Bptr];
}
} if(document.getElementById) {
document.getElementById(fld1).innerHTML = Question;
document.getElementById(fld2).innerHTML = '';
}
else alert('Sorry: incompatible browser.');
}
function Trad(fld){
if (Sense == 1) { Answer = Version[Qptr] }
if (Sense == 2) { Answer = Theme[Qptr] }
if(document.getElementById)
document.getElementById(fld).innerHTML = Answer ;
else alert('Sorry:incompatible browser.');
}
function Ordr(){
if (Sense == 1) { Sense = 2 }
else { Sense = 1 }
}

</script>
</head>
<body>
<script language='javascript'>
document.write('<body bgcolor='+ Pcol +' onLoad="Disp(\'quest\',\'answ\')">');
document.write('<br>&nbsp;&nbsp;&nbsp;');
document.write('<input type=button value=\' -> \' ');
document.write('onClick="Disp(\'quest\',\'answ\')">');
document.write('<input type=checkbox value=on onChange="Ordr()">');
document.write('<input type=button value=\' = \'
onClick="Trad(\'answ\')">'); document.write('<br><br><br><br><br><br>');
document.write('<blockquote><p align=center>'); document.write('<table
bgcolor=' + Bcol + ' cellpadding=30 border=0>');
document.write('<tbody>'); document.write('<tr>');
document.write('<td align=center>');
document.write('<h1><font color=\''+ Fcol +'\' size=+3><div
id=\'quest\'>'); document.write('</div></font></h1>');
document.write('</td>');
document.write('</tr>');
document.write('<tr>');
document.write('<td align=center>');
document.write('<h1><b><font color=\''+ Fcol +'\' size=+4><div
id=\'answ\'>'); document.write('</div></font></b></h1>');
document.write('</td>');
document.write('</tr>');
document.write('</tbody>');
document.write('</table>');
document.write('</p></blockquote>');
document.write('</body>');
</script>
</html>

2 réponses

1 2 3
Avatar
Olivier Miakinen

Attention, il s'agissait bien ici d'entités *numériques*, d'où mon
étonnement face à ta réaction. Mais bien sûr, si tu avais cru qu'il
s'agissait de l'entité *nommée* &Omega; alors tout s'explique.


Je ne vois pas pourquoi tu t'étonnes que je me méfie d'IE :-)


IE a certainement plein de défauts, mais en l'occurrence c'est comme si
tu me disais qu'une calculette Microsoft qui sait faire des additions et
des multiplications ne saurait pas additionner 2+2 (alors qu'elle sait
additionner 1+3, 2+3, 3+2, 5+5, 195+487, etc).

Maintenant, il est possible que l'étendue de l'utf-8 ait évolué depuis
la sortie de cet IE.


L'étendue de l'UTF-8 a été définie pour tous les numéros de caractères
entre 0 et 2 147 483 647 (7FFFFFFF hexa), même si elle a ensuite été
réduite à 1 114 111 (10FFFF hexa). Par conséquent, aucun problème pour
les caractères grecs dont 937 (3A9 hexa).


Alors mon IE a des trous de mémoire.
Faudrait que j'essaie avec NC 4.5 :-)


Non, tu n'as visiblement pas compris ce que j'essaye de dire, peut-être
maladroitement. Je ne dis pas que IE ou NC4 *doit* savoir afficher un
caractère donné.

Je dis que :
*si* ce caractère s'affiche, codé en UTF-8,
*alors* il le fera aussi codé en entité numérique ;
*si* ce caractère ne s'affiche pas, codé en UTF-8,
*alors* il ne le fera non plus codé en entité numérique ;
*si* ce caractère s'affiche, codé en entité numérique,
*alors* il le fera aussi codé en UTF-8 ;
*si* ce caractère ne s'affiche pas, codé en entité numérique,
*alors* il ne le fera non plus codé en UTF-8.

La capacité à afficher effectivement tel ou tel caractère est
complètement indépendante de la capacité à décoder un entier selon
qu'il est écrit en décimal ou codé en UTF-8.



Avatar
ASM

IE a certainement plein de défauts, mais en l'occurrence c'est comme si
tu me disais qu'une calculette Microsoft qui sait faire des additions et
des multiplications ne saurait pas additionner 2+2 (alors qu'elle sait
additionner 1+3, 2+3, 3+2, 5+5, 195+487, etc).


Rien ne m'étonne de la part de M$, même une calculette aux calculs
aléatoires.

Alors mon IE a des trous de mémoire.
Faudrait que j'essaie avec NC 4.5 :-)


Non, tu n'as visiblement pas compris ce que j'essaye de dire, peut-être
maladroitement. Je ne dis pas que IE ou NC4 *doit* savoir afficher un
caractère donné.


J'en suis étonné, mari, déçu, qu'ils n'affichent pas tous les caractères.

Je dis que :
*si* ce caractère s'affiche, codé en UTF-8,
*alors* il le fera aussi codé en entité numérique ;


si si j'ai invisiblement capté (c'est assez logique &#937; = CE A9.)

La capacité à afficher effectivement tel ou tel caractère est
complètement indépendante de la capacité à décoder un entier selon
qu'il est écrit en décimal ou codé en UTF-8.


Oui, oui, c'est capté. Mais comme il m'est assez facile d'écrite
n'importe quoi en utf-8, je préfère tester avec ce charset, sans avoir à
rechercher les équivalences de type &...;

--
Stephane Moriaux et son [moins] vieux Mac


1 2 3