2016-04-11 21 views
0

Bir tuval üzerine resim çizerek sorun yaşanabilir. Ancak resmin yeni bir pencerede tuval üzerine çizilmesini istiyorum. Değişkenler doğru değerlere sahiptir, ancak yine de hiçbir şey çizilmez. Yeni pencerede çizilmemiştir aynı kod çalışıyor olarakYeni pencerede açıldığında resim resim çekilmiyor.

var popup = window.open(); 

popup.oldCanvas= oldCanvas; 

popup.url = 'http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg'; 

popup.document.open(); 

popup.document.write("<html><head>"); 

popup.document.write('<script src="lib/jquery/jquery-2.1.1.min.js"></script>'); 

popup.document.write("<script>\n"); 

popup.document.write("$(document).ready(function() { \n"); 

popup.document.write(" function createCanvas() {       \n"); 

popup.document.write("  var img = new Image;\n"); 

popup.document.write("  var newCanvas = document.createElement('canvas');\n"); 

popup.document.write("  var context = newCanvas.getContext('2d');  \n"); 

popup.document.write("  newCanvas.width = oldCanvas.width;   \n"); 

popup.document.write("  newCanvas.height = oldCanvas.height;   \n"); 

popup.document.write("  img.onload = function() {\n"); 

popup.document.write("    context.drawImage(this, 0, 0);     \n"); 

popup.document.write("  };            \n"); 

popup.document.write("  img.src = url;         \n"); 

popup.document.write(" };             \n"); 

popup.document.write(" createCanvas();          \n"); 

popup.document.write("});              \n"); 

popup.document.write("</script>"); 

popup.document.write("</head><body>"); 

popup.document.write("</body>"); 

popup.document.write("</html>"); 

popup.document.close(); 

, ben yanlış yapıyorum söyle:

İşte benim kodudur.

+0

Eğer '$ altında' console.log (oldCanvas) 'bir satır koymak ne olur (belge) .ready'? – tyler

+0

HTML tuval öğesini yazdırır: ' nullpointer

+0

document.write sürümünde? Bir jsfiddle'a koyabilir misin? – tyler

cevap

2

tuval oluşturuldu ancak DOM içine yerleştirilir asla:

var newCanvas = document.createElement('canvas'); 
document.body.appendChild(newCanvas);    // add to DOM 
...