Canvas に描画した内容は、innerHTML を使った Nodeツリーへの干渉により描画内容がリセットされ消えてしまいます(in Chrome, Safari, Firefox) useInnerHTML = false にすると消えません。 <body> <canvas></canvas> <img src="foo.png"></img> </body> var useInnerHTML = true; window.onload = function() { var ctx = document.querySelector("canvas").getContext("2d"); ctx.drawImage(document.querySelector("img"), 0, 0); if (useInnerHTML) { document.body.innerHTML += "<