2016-05-27 8 views
1

次のスクリプトを使用して、ウェブカメラを表示しているページの画像を更新しています。ウェブカメラの画像はFTPで取得されます。 mixitupを使用してフィルタリングインターフェイスを実装したいので、すべてのフィルタをクリアするので、ページ全体をリフレッシュする必要はありません。ページ上のすべての画像を更新する

したがって、上記のスクリプトは動作します...種類の。ここでの問題は、最終的に画像のURLが長くなりすぎて表示されなくなることです。

どのように解決できるかについてご意見はありますか?

乾杯!

function imgRefresh() { 
    var now = new Date(); 
    for (i = 0; i < document.images.length; i++) { 
    document.images[i].src = document.images[i].src + "?" + now.getTime(); 
    } 
    setTimeout('imgRefresh()', 5 * 1000); 
} 

答えて

0

正規表現で使用replace: -

function imgRefresh() { 
    var now = new Date(); 
    for (i = 0; i < document.images.length; i++) { 
    var src = document.images[i].src.replace(/\?\d+/, ''); 
    document.images[i].src = src + '?' + now.getTime(); 
    } 
    setTimeout(imgRefresh, 5000); 
} 

/\?\d+/を探しますか?の後にの番号が追加され、新しい時刻に置き換えられます。

+0

こんにちはベン、これを見ていただきありがとうございます!あなたが作った提案は、リフレッシュがすべて一緒に働くのを止めるようです。何かご意見は?ありがとう。 Brad –

+0

更新された回答を参照してください。 – BenG

0

split()、 "?"を区切り文字として使用して、結果の最初の部分(元のurl)を取得できます。

例:split()

<script language="JavaScript" type="text/javascript"> 

function imgRefresh() { 
    var now = new Date(); 
    for(i=0; i<document.images.length; i++) { 
     document.images[i].src= document.images[i].src.split("?")[0]; 
     document.images[i].src = document.images[i].src + "?"+now.getTime(); 
    } 
    setTimeout('imgRefresh()', 5*1000); 
} 

</script> 

ドキュメント。

+0

こんにちはルーカス、これを見ていただきありがとうございます!あなたが提案したスクリプトは、最初に投稿された画像を表示する小さなちらつきを引き起こすようです。乾杯。ブラッド –

関連する問題