1

所以我开始了解 Canvas 元素,并制作了简单的基于 Canvas 的画廊来帮助我入门。我使用 setInterval 来更新我的 Image 的 src 而不是 onLoad 在画布中绘制它。问题是它在 Chrome 中有效,但在 Safari 或 IE 中无效。

var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
var img = new Image();
img.src = "http://lorempixel.com/g/400/400";
img.onload = function() {
    console.log('new image time');
    context.drawImage(img, 0, 0);
};
setInterval(function(){
    img.src = "http://lorempixel.com/g/400/400";
}, 4000);`

我做了一个小提琴:http: //jsfiddle.net/lukaMis/T92TW/3/

那么为什么 setInterval 不在 Safari 中运行呢?

4

1 回答 1

2

所以

我发现它正在捕获浏览器问题。浏览器捕获对 img.src 的请求,但它不起作用。如果如果附加时间戳来请求它的工作原理:

_time = Date.now();
img.src = "http://lorempixel.com/g/400/400" + "?" + _time;

小提琴:http: //jsfiddle.net/T92TW/5

卢卡

于 2013-10-09T12:06:31.970 回答