さて、私はjavascriptで関数を持っています:
function store_data(){
var img=document.createElement("img");
/*var img=new Image();
img.onload = function() {
context.drawImage(img, 0, 0);
};*/
img.src= URL; //js global var
var height=parseInt(img.naturalHeight,10);
var width=parseInt(img.naturalWidth,10);
var canvas = document.getElementById('myCanvas');
canvas.setAttribute("width", width);
canvas.setAttribute("height", height);
var context = canvas.getContext('2d');
context.drawImage(img,0,0);
canvas.style.width="100%";
var data=(canvas.toDataURL("image/png"));
localStorage.setItem("data", data);
}
初めて呼び出されたときは、「data;」のような文字列を保存します。localStorage では、イメージは "data64;aothetahetahotetav..." のように不完全です。しかし、2回目に呼び出すと、データは正常に保存されます。なぜそれが起こるのですか?
おそらく、ロードされたdomのimgに画像をロードする必要がありますか?画像は後で描画するために保存されます。