【问题标题】:Firefox, iOS Safari not changing img src more that once with jqueryFirefox,iOS Safari 不再使用 jquery 更改 img src
【发布时间】:2012-04-07 00:53:45
【问题描述】:

我正在尝试每秒使用 JQuery 从 img 标记更改 src 属性。在 Google Chrome 上运行良好,每秒都会出现一个新图像。但不要在 Firefox 或我的 iPad 上工作。只更改一次图像。

这是我正在使用的代码:

$(document).ready(function(){
    function refreshIMG(){
        $("#camara").attr("src", "localhost:4000");
    }
});
window.setInterval(refreshIMG, 1000)

在 localhost:4000 上,我正在运行一个龙卷风服务器,并使用 openCV 保存我的网络摄像头的图像。我知道这是可行的,因为它可以在 Google Chrome 上运行,并且我将图像保存在我的硬盘上。 还向 refreshIMG 函数添加和 alert("test") ,并且每隔一秒警报就会显示在 firefox 和我的 iPad2 上,但图像不会改变。

在 Firefox 11、ipad 和 iOS 5.1、Chrome 18 上测试。Ubuntu 11.10

【问题讨论】:

  • 您编写代码的方式,refreshIMG 不在范围内 - 但猜测这只是一个编辑问题,真正的问题可能是缓存,和/或您没有等待更改之前要加载的第一张图片。

标签: jquery image firefox google-chrome


【解决方案1】:

这些其他浏览器是否可能检测到 src 是相同的,所以它不会改变任何东西?

尝试将?time=" + new Date().getTime() 添加到您的 src。我还建议将setInterval 移动到$(document).ready() 内,以防它在它存在之前尝试执行refreshIMG(),因为DOM 尚未准备好(不太可能,但很好的做法)。最终产品将类似于:

$(document).ready(function(){
    function refreshIMG(){
        $("#camara").attr("src", "localhost:4000?time=" + new Date().getTime());
    }
    window.setInterval(refreshIMG, 1000);
});

这可能会“欺骗”那些浏览器,让他们认为这是一张完全不同的图片并刷新它。

否则,您可以尝试对仅内容为 <img src="localhost:4000"> 的页面进行 AJAX 调用,然后将该 HTML 替换为当前图像中的 HTML。

【讨论】:

  • 通过将日期添加到 URL 来完美运行。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 1970-01-01
  • 2013-07-19
  • 1970-01-01
  • 2011-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多