2016-08-03 5 views
0

forループのiframeまたはwindow.opener.locationのsrc属性を変更したいとします。たとえば、次のように:forループのiframeまたはwindow.opener.locationのsrcを変更するにはどうすればよいですか?

  1. スタートループのiframeから
  2. 変更SRCリンク1へ
  3. は、リンク2へのiframeから
  4. 1秒次
  5. 変更srcを待つ
  6. 1 secoond
  7. を待ちます次へ
  8. [...]
  9. 私はこのようなループのためにそれを実装しようとするたびに、エンドループ

は、しかし:

iframe = document.createElement('iframe'); 
document.body.appendChild(iframe); 
iframe.src = 'http://example.com/index.php?x=init'; 
for(i = 1; i <= 5; i++) 
{ 
    console.log(i) 
    iframe.src = 'http://example.com/index.php?x='+i; 
    sleep(1000) // <- A sleep function that does a while loop for 1000 ms 
} 

それが実際のiframeを出力する前には、常にコンソールに1,2,3,4,5を出力しますsrcを最後のものだけに変更します。

私が間違っていることはありますか?それはjavascriptでそれを実現することさえ可能ですか?それとも別のやり方をしなければならないのですか?私はforループとwindow.opener.locationで同じ問題があります。

+0

なぜそれをループで実行しますか? –

+0

私はさまざまな量の反復を持っているからです。それは5であるかもしれません、時には10かもしれません。 –

答えて

0

もしあなたがむしろ欲しいと思うものは、このようなものです。

iframe = document.createElement('iframe'); 
document.body.appendChild(iframe); 
iframe.src = 'http://example.com/index.php?x=init'; 
var i = 0; 

var interval = setInterval(function() { 
    i++; 
    console.log(i) 
    iframe.src = 'http://example.com/index.php?x='+i; 
    if (i === 5) { 
     clearInterval(interval); 
    } 
}, 1000); 
+0

どうもありがとうございました。 forループが期待どおりに動作しなかった理由についての説明はありますか? –

+0

私にあなたの睡眠()機能を示すなら、それをあなたに説明することができます。 – patrickcipot

+0

これはあまりにも時間がかかりすぎますが、基本的には "現在の時間"> "開始時間+ 1000ミリ秒"とすぐに終了するwhileループです。 –

関連する問題