2013-07-10 162 views
0

我在Internet Explorer和Firefox上遇到以下代碼問題。它在Safari和Chrome中正常運行。JQuery setInterval未在Firefox上更新,Internet Explorer

問題是,它會刷新一次,然後再也不會。

<img class="cameras" src="http://www.redlodge.com/webcam_rlm/netcam.jpg&t="> 

<script type="text/javascript">  

    function updateCamera() { 
    time = new Date().getTime(); 
    $('.cameras').each(function() { 
     var url = $(this).attr('src').replace(/&t=\d*/, '&s='+time); 
     $(this).attr('src', url); 
    }) 
    } 

$(document).ready(function() { 
    setInterval(updateCamera, 2000); 
}); 

</script> 

我研究和研究,並認爲這是由於太多的請求。是這樣嗎?我以爲我用「setInterval」來防止這種情況。

+0

你有什麼問題? –

+1

var time = new Date()。getTime(); – Rooster

+1

我明白了。你的正則表達式只會匹配url中的內容,在這之後,它不再匹配,因爲你用'&s ='而不是'&t ='取代了它,因此它只是從緩存中拉出。從技術上講,您的腳本在IE和Firefox中運行正常,在Safari和Chrome中運行不正確,但由於邏輯錯誤(或者是錯字?),您的腳本沒有做到您想要的操作 –

回答

1

首先,它的&t=time,那麼它的&s=time,你需要決定使用哪一個,截至目前只有第一個空&t=time被替換,而不是與&s=*啓動其他的:

<img class="cameras" src="http://www.redlodge.com/webcam_rlm/netcam.jpg?s="> 

和JS

function updateCamera() { 
    var time = new Date().getTime(); 
    $('.cameras').each(function() { 
     this.src = this.src.replace(/\?s=\d*/, '?s='+time); 
    }) 
} 

和查詢字符串應該開始?,不是&,否則它不會在所有的工作。

FIDDLE

+0

我的部分是多麼愚蠢的錯誤。謝謝你在這上面花時間,我不能相信我錯過了。謝謝。 –

相關問題