强制firefox在img.src更改后重新加载图像

时间:2012-08-04 15:57:49

标签: javascript html firefox canvas

我正在修改画布上的一些图像,然后将这些图像的src设置为新的base64编码图片。

img.src = changeColor(img);

changeColor返回base64编码图像:

return canvas.toDataURL();

Chrome和Opera在src更改后刷新了图像,但是firefox没有! 我还通过FireBug检查了图像元素,它显示了新的src和新图像!

我已经尝试过将数据添加到网址,但是呃......这是一个base64编码的图片,而不是网址,所以它完全打破了我的图片。

我有什么方法可以通过javascript强制重新加载图片或禁用firefox缓存?

更新: 我也尝试过设置image.src ='';在changeColor函数中。 它适用于chrome,但在firefox中...图片消失,并且在我设置新的base64值时不再出现。

3 个答案:

答案 0 :(得分:1)

正如@dmmd所说,这对我有用。您只需要添加一个随机值的查询字符串。

id.src = "path?t=t"+ Math.random(5);

答案 1 :(得分:1)

我没有使用图像数据,但这适用于类似的问题,当src变量没有改变时,FF没有重新加载:

image.src = "";
setTimeout(function(){
    image.src = //the new image src
}, 0);

答案 2 :(得分:0)

尝试添加图片格式(并使用jpg)。它可能会重新编码图像:

return canvas.toDataURL('image/jpg');