Javascript zeigt bei mir ein sehr seltsammes Verhalten.
Wenn ich alert("blablabla"); auskommentiere, werden weiter unten width und height nicht korrekt abgefragt und das canvas bekommt falsche Dimmensionen.
Kommentiere ich alert(canvas.getAttributeNode("height").nodeValue ); aus, wirft die letzte Zeile eine Exception.
Ich kann mir das nur so erklären das durch alert der Programmfluss so lange gestoppt wird, das die Änderungen im document angewandt werden können.
Gibt es eine Möglichkeit das zu Umgehen im fertigen Programm sollten nach Möglichkeit keine alert() Aufrufe drin sein.
Code
var img = window._content.document.createElement("img");
var src = window._content.document.createAttribute("src");
src.nodeValue = image_url;
img.setAttributeNode(src);
alert("blablabla"); //alert1
var canvas = window._content.document.createElement("canvas");
var height = window._content.document.createAttribute("height");
var width = window._content.document.createAttribute("width");
height.nodeValue = img.height;
width.nodeValue = img.width;
canvas.setAttributeNode(height);
canvas.setAttributeNode(width);
alert(canvas.getAttributeNode("height").nodeValue ); //alert2
window._content.document.documentElement.appendChild(canvas);
var canvas_context = canvas.getContext("2d");
canvas_context.drawImage(img, 0, 0);
Alles anzeigen