2017-07-11 8 views
0

タイマーが0になるとカウントダウンタイマーを20秒にしたい、iframeをリフレッシュする。そして、リフレッシュ後に再びiframeタイマーが20秒になり、0になった後に再びiframeがリフレッシュされます。どのように私はこれを行うことができます、私はiframeをリフレッシュするjsタイマーのスクリプトを持っていますが、このスクリプトを何度も何度も実行させる方法はわかりません。JavaScriptを何度も何度も実行するタイマーを作る方法

<script> 
var tT; 
var timer=20; 
var stop; 
$(document).ready(function(){ 
    tT=document.getElementById('timer'); 
    tT.value=timer; 
    stop=setInterval(function(){ 
     if(timer>0){ 
      timer--; 
      tT.value=timer; 
     }else{ 
      clearInterval(stop); 
    }},1000); 
    setTimeout(function(){ 
     document.getElementById('timer').value = timer; 
    document.getElementById('exchanger').src = document.getElementById('exchanger').src; 

    },20000); 
}); 
</script> 

インラインフレーム: -

<input id="timer" value="20" type="text" size="2" readonly style="border:none;background:transparent;width:18px;text-align:center"> 
+0

使用すると、 '' setTimeout'の代わりにsetInterval'。 – Albzi

+0

そして、あなたのコードを常にフォーマットしてください。それが長くなったり長くなったりすると、落ちることはありません。 –

+0

大丈夫、私はここに新しいですので、気にしないでください。 –

答えて

0

使用ここで

setInterval(function, delay) 

は、あなたの関数のコードである

(function(){ 
// do some stuff 
setTimeout(arguments.callee, 20000); 

})();

は、参考のために、この質問はすでに上のリンクの下にここにマークされている:私はAlbziの提案に従っ

function loadlink() { 
 
    $('#iframeId')[0].contentWindow.location.reload(true); 
 
} 
 

 
loadlink(); // This will run on page load 
 
var count = 1; 
 
setInterval(function() { 
 
    $(".timer").text(count) 
 
    count++; 
 
    if (count == 20) { 
 
    loadlink() // this will run after every 20 seconds 
 
    count = 0; 
 
    } 
 
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="timer"></div> 
 

 

 
<iframe id="iframeId" class="myframe" name="myframe" src="http://google.com"></iframe>

0

はあなたを助けるためのサンプルコードがあります(誰が私の質問にコメントしましたか)、私
setTimeoutの代わりにsetIntervalを使用しました。

最終スクリプトは次のとおりです。

var tT; 
var timer=20; 
var stop; 
$(document).ready(function(){ 
tT=document.getElementById('div-ID'); 
tT.value=timer; 
stop=setInterval(function(){ 
if(timer>0){ 
timer--; 
tT.value=timer; 
}else{clearInterval(stop); 
}},1000); 
setInterval(function(){ // I changed setTimeout here 
document.getElementById('Iframe-ID').src = document.getElementById('Iframe-ID').src; 
timer=20; 
},20000); 
}); 

とHTML:<div id="Div-ID"></div> インラインフレーム:あなたが前に行っているよう<iframe id="Iframe-ID" src="source-url"></iframe>

+0

$( '#iframeId')[0] .contentWindow.location.reload(true); iframe IDの前に「#」が必要ですか? –

+0

はい、iframeのため、必要です。 –

+0

また、iframeを削除してDIVコンテナをリフレッシュすることもできます。そのDIVコンテナのこのコードを微調整するのは簡単です。 –

関連する問題