Je crée une application web qui permet aux utilisateurs d'entrer un certain nombre de couleurs, en spécifiant des valeurs RVB. Lors de la soumission, l'utilisateur verra une toile avec un rectangle plein dessiné dans la couleur choisie.Pourquoi ces Canvases ne sont-elles pas rendues?
Sur cette page, j'ai 7 toiles. Le premier dessine très bien, mais aucun des autres n'apparaît. Le navigateur est Safari. Voici le code approprié:
D'abord, l'élément de script dans l'en-tête, qui définit la fonction que j'utilise pour dessiner sur le canevas.
<script language="JavaScript" TYPE="text/javascript"><!--
function drawCanvas(canvasId, red, green, blue) {
var theCanvas = document.getElementById("canvas" + canvasId);
var context = theCanvas.getContext("2d");
context.clearRect(0,0,100,100);
context.setFillColor(red,green,blue,1.0);
context.fillRect(0,0,100,100);
}
// -->
</script>
Ensuite, la source HTML, où j'ai mes tags de toile et certains Javascript intégré pour appeler ma drawCanvas fonction
<canvas id="canvas0" width="100" height="100">
</canvas>
<script language="JavaScript" TYPE="text/javascript"><!--
drawCanvas(0,250,0,0);
// -->
</script>
.
. //more source
.
<canvas id="canvas1" width="100" height="100">
</canvas>
<script language="JavaScript" TYPE="text/javascript"><!--
drawCanvas(1,4,250,6);
// -->
</script>
également fourni une capture d'écran. Comme vous pouvez le voir, la toile "rouge" se présente très bien, mais la seconde, qui devrait être verte, n'apparaît pas du tout. Des idées?
Est-ce que 'drawCanvas' est exécuté la deuxième fois? Peut-être que quelque chose sur la page se brise et qu'on ne l'appelle jamais. –
Il est définitivement appelé et la valeur de l'argument est correcte, si mon débogueur Safari javascript vaut quelque chose. :) – bpapa