2

我正在尝试每秒使用 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 上运行,并且我将图像保存在我的硬盘上。还将警报(“test”)添加到 refreshIMG 功能,并且警报每秒都会在 firefox 和我的 iPad2 上显示,但图像不会改变。

在 Firefox 11、带有 iOS 5.1 的 ipad、Chrome 18 上测试。Ubuntu 11.10

4

1 回答 1

6

这些其他浏览器是否有可能检测到 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);
});

这可能会“欺骗”那些浏览器,使其认为这是一个完全不同的图像并刷新它。

否则,您可能会尝试对只有内容所在的页面进行 AJAX 调用<img src="localhost:4000">,然后用当前图像中的 HTML 替换该 HTML。

于 2012-04-07T01:14:27.853 回答