【问题标题】:How can I reload an image on a time interval?如何按时间间隔重新加载图像?
【发布时间】:2011-11-08 12:45:24
【问题描述】:

我有两张图片需要在 x 时间内重新加载。我试着这样做:

<script>
 function srcreload(){
     imguser=document.getElementsByName("userimage")[0];
     imgme=document.getElementsByName("me")[0];
     imguser.src=imguser.src;imgme.src=imgme.src;setTimeout("srcreload()",15000);};
     setTimeout("srcreload()",15000);
</script>
  <img src="somesrc" name="userimage">
  <img src="someothersrc" name="me">

为什么这不起作用,我该如何解决?我曾经让它工作过,但后来我一定改变了一些东西,因为它不再工作了。

【问题讨论】:

  • 请详细说明“不起作用”的含义以及您使用的浏览器。
  • 您的 javascript 末尾有一个不必要的 {
  • 我使用 chrome,但我需要它在所有主流浏览器(IE、Chrome、Firefox)中工作。而且它不起作用,为什么...删除了不必要的 {

标签: javascript image reload


【解决方案1】:
  1. 使用var
  2. 不要将字符串传递给setTimeout,而是传递函数。
  3. 正确缩进。

如果你缩进得很好,你会看到一个无关的},它不属于那里。

var url = "...";

function srcreload() {
    var imguser = document.getElementsByName("userimage")[0];
    var imgme = document.getElementsByName("me")[0];

    var random = "?" + Math.random();

    imguser.src = url + random;
    imgme.src = url + random;

   setTimeout(srcreload, 15000);
}

setTimeout(srcreload, 15000);

【讨论】:

  • 字符串可以被发送到 setTimeout 它会被评估。
  • 我现在尝试了您的解决方案,但问题似乎并不存在。在我的页面中,代码设置得很好,没有多余的}。不过,图像不会更新。
  • @Tobias:我知道,但这是一种非常糟糕的做法。
  • @pimvdb:我确实尝试过。但它仍然没有工作。哦等等..你编辑了它,等一下,我再试一次
  • 它确实有效,但它会影响图像......重新加载后它们看起来不同
【解决方案2】:
imguser.src=imguser.src;
imgme.src=imgme.src;

这些 do 行是否有意义,正在复制相同的值?

【讨论】:

  • 我猜它会让浏览器再次下载文件,但我不确定这是否是一个好习惯(它可能只是使用缓存)。
  • 我已经在 iframe 上使用了相同的技巧来重新加载它们,并且它不使用缓存的副本。
  • 啊 XD 它刚刚从我的指缝中溜走!它适用于问号,但不适用于“#”
猜你喜欢
  • 1970-01-01
  • 2013-12-02
  • 1970-01-01
  • 1970-01-01
  • 2011-10-12
  • 1970-01-01
  • 2013-11-17
  • 1970-01-01
  • 2018-01-18
相关资源
最近更新 更多