使用js在gif中附加时间戳以防止缓存

时间:2016-01-11 04:02:49

标签: javascript jquery gif

您好我正在使用带有GIF的Revolution Slider(sample here)。我有四张幻灯片,所有幻灯片都使用相同的GIF图像源。

问题是它在第一张幻灯片上只加载一次GIF,然后从第二张幻灯片加载,它不再是动画 - 我认为这是因为缓存。我想尝试在网上找到关于附加时间戳或随机查询的解决方案,例如<img src="image.gif?01234">

但是因为它是从滑块加载的,所以我只能为每个滑块分配一个ID或类,然后使用JS附加时间戳。而且我对JS并不熟悉。帮忙,有人吗?

1 个答案:

答案 0 :(得分:3)

正如您所描述的,如果您有id或class,则可以使用javascript修改源代码

<强> HTML

<img src="../abc.gif" alt="dummy title" id="img1" />

<强>的Javascript

function editSrc() {
  // get current src of image
  var img1 = document.getElementById('img1');
  var prevSrc = img1.src;
  alert(prevSrc);
  // get current date
  var dt = new Date();
  // modify img with current timestamp
  img1.src = prevSrc + "?" + dt.getTime();
  alert(img1.src);
}

如果你想一直更新它,那么最好使用

// split src based on `?` and then take the src before `?`
img1.src = prevSrc.split('?')[0] + "?" + dt.getTime();

而不是

img1.src = prevSrc + "?" + dt.getTime();

<强> Demo