У меня есть холст с идентификатором cnv.
<canvas id='cnv'></canvas>
У меня есть функция javascript, которая меняет изображение на холсте. Изображения различаются.
function changeImageInACanvas(dynamicSource){
var myid_signature = document.getElementById("cnv");
var myid_ctx_signature= myid_signature.getContext('2d');
var myid_signature_image = document.getElementById("img_mysignature");
myid_signature_image.src = dynamicSource;
myid_ctx_signature.clearRect(0, 0, myid_signature.width, myid_signature.height);
if (myid_signature_image.complete){
myid_ctx_signature.drawImage(myid_signature_image,0,0, myid_signature_image.width, myid_signature_image.height, 0, 0, myid_signature.width, myid_signature.height);
}else{
myid_signature_image.onload = function () {
myid_ctx_signature.drawImage( myid_signature_image,0,0, myid_signature_image.width, myid_signature_image.height, 0, 0, myid_signature.width, myid_signature.height);
};
}
}
В самый первый раз функция выполнялась, изображение правильно загружалось на холст, но во второй раз отображалось предыдущее изображение, а новое изображение не отображалось.
Я отлаживаю его, ставя точку останова в каждой строке функции. Я обнаружил, что новое изображение загружается во второй раз, когда функция выполняется, но после функции холст снова загружает предыдущее/первое изображение. Где я пропал?