这个问题最好用 jsFiddle 来演示。这里是。
所以根据这段代码:
var canvas = document.getElementById('canvas');
canvas.width = 200;
canvas.height = 150;
var context = canvas.getContext('2d');
context.rect(20,20,50,50);
context.stroke();
var image = new Image();
image.src = canvas.toDataURL("image/png");
context.clearRect(0, 0, canvas.width, canvas.height);
context.drawImage(image, 0, 0);
每次加载页面时,您都应该看到画布上绘制了一个矩形。然而,由于某种原因,第一页加载总是什么都不显示,一个“空白”......
这一点可以通过在单独的 Chrome“隐身”选项卡中打开 jsFiddle 链接来证明。您永远不会第一次看到矩形加载。令人耳目一新,但它会出现。
为了证明您确实应该在初始加载时看到一个矩形,请尝试将 jsFiddle 更新为:
var canvas = document.getElementById('canvas');
canvas.width = 200;
canvas.height = 150;
var context = canvas.getContext('2d');
context.rect(20,20,50,50);
context.stroke();
//var image = new Image();
//image.src = canvas.toDataURL("image/png");
//context.clearRect(0, 0, canvas.width, canvas.height);
//context.drawImage(image, 0, 0);
您将在每次首次加载时看到矩形。
为什么第一次加载什么都不显示?