Komponente zurückgegeben Fehler-code: 0 x 80040111 (NS_ERROR_NOT_AVAILABLE)

Mein problem :

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]

Den code, die dieses Verhalten (tmpImg ist dynamisch laden, also wenn es noch nicht geladen ist, es überspringen).

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);
}

Das problem passiert mehrmals, wenn die tmpImg wird gerade geladen (zumindest laut Firebug - log), und dann wieder verschwinden.
Das code-snippet aufgerufen wird, mehrmals nacheinander, so kann ich nicht sehen, wenn das Bild tatsächlich angezeigt, wenn der Fehler ausgelöst wird.
Der Wert rect.* sind floating-point -, so etwas wie {x:-1500, y:-2500,h:1000,B:1000}

Haben Sie keine Ahnung über den Ursprung dieses Fehlers ?

Bearbeiten 1

Dieser code produzieren, den Fehler (du musst ein Bild mit dem Namen "test.png" im gleichen Verzeichnis

<!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>

Scheint es im Zusammenhang mit der Tatsache, dass das leere Bild hat ein src Anstand". Ist es immer so ?

edit 2

In der Tat, für das bug-reporting, das JavaScript ausreichen würde (wenn ich es verstanden) :

document.getElementById("canvas").getContext("2d").drawImage(new Image(),0,0);

InformationsquelleAutor Clement Bellot | 2011-07-27

Schreibe einen Kommentar