Mi problema:componente devuelto código de error: 0x80040111 (NS_ERROR_NOT_AVAILABLE)
uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: file:///***************.js :: redrawView :: line 308" data: no]
El código que producen este comportamiento (tmpImg está cargando dinámicamente, por lo que si no está cargado todavía, se evitarlo).
if(tmpImg!=null && tmpImg.img.complete===true && tmpImg.img.src!=null){
var tmpPos = i_getCoordsImage(tmpImg);
var rect = getRectInCurrentView(tmpPos.x,tmpPos.y,tmpPos.w,tmpPos.h);
console.log(tmpImg);
console.log(rect);
mainDisplayContext.drawImage(tmpImg.img,rect.x,rect.y,rect.w,rect.h);
}
El problema ocurre varias veces cuando la tmpImg se acaba de cargar (a menos de acuerdo con el diario de Firebug), y luego desaparecen.
El fragmento de código se llama varias veces seguidas, por lo que no puedo ver si la imagen se muestra realmente cuando se produce el error. .
El valor de rect * son punto, algo que flotaba como {x: -1500, Y: -2500, h: 1000, w: 1000}
¿Tiene alguna idea sobre el origen de este error?
Editar 1
Este código producen el error (es necesario tener una imagen llamada "prueba.png" en el mismo directorio
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta charset="UTF-8" />
</head>
<body id="body">
<canvas id="canvas" width="600" height="600"></canvas>
<script>
//[CDATA[
var img = new Image();
var mdc = document.getElementById("canvas").getContext("2d");
function displayCallback(){
if(img.complete===true && img.src!=null){
mdc.drawImage(img,0,0,600,600);
}
setTimeout(displayCallback, 50);
}
setTimeout(function(){img.src = "test.png";}, 10000);
setTimeout(displayCallback, 1000);
//]]
</script>
</body>
</html>
Se parece estar relacionada con el hecho de que el vacío la imagen tiene una propiedad src del "". ¿es siempre cierto?
edición 2
De hecho, para la notificación de errores, este JavaScript sería suficiente (si he entendido):
document.getElementById("canvas").getContext("2d").drawImage(new Image(),0,0);
Agregué un código que produce el error, he encontrado de dónde vino el problema en mi código (probando nulo en lugar de ""), si todavía dice que esto es un error, me gustaría su ayuda para señalarlo correctamente (I Me temo que la referencia HTML es un poco oscura para mí). –
Parece que es un error conocido y antiguo: https://bugzilla.mozilla.org/show_bug.cgi?id=405761 Agregué su caso de prueba más corto. – zwol