2016-04-11 20 views
0

キャンバスに問題なく描画できます。 しかし、イメージをキャンバスに新しいウィンドウで描画したい。 変数は正しい値を持ちますが、何も描画されません。新しいウィンドウで描かれていないときに、同じコードが正常に動作として新しいウィンドウで開くと画像がキャンバスに描画されない

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

は、私が間違っているのを教えてください:

は、ここに私のコードです。

+0

あなたは '$以下の'はconsole.log(oldCanvas) '一行を入れたらどうなりますか(文書).ready'? – tyler

+0

これはHTMLキャンバスの要素を出力します: '' – nullpointer

+0

document.writeバージョンでは?あなたはそれをjsfiddleに入れられますか? – tyler

答えて

2

キャンバスが作成されますが、DOMに挿入されることはありません:

var newCanvas = document.createElement('canvas'); 
document.body.appendChild(newCanvas);    // add to DOM 
... 
関連する問題