• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:無限ループから脱出不可能です)

無限ループから脱出不可能な問題発生

このQ&Aのポイント
  • オフラインでは正常に作動するコードが、FC2.comにアップロードした際に画面がフリーズし、無限ループに陥ってしまう問題が発生しています。
  • 解決策をお教えいただきたいです。
  • URL: http://nonprofit4excellence.web.fc2.com/i/images/d002.html

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 おそらくの回答で申し訳ないのですが、 if ( i > max )で1が1000を越したらGoNext()を実行し、location.hrefでページ遷移を実行しています。 しかしsetInterval()を7ミリsecという短期間で繰り返しているため、location.hrefの処理が完了しようとしている間もwinScroll()を短期間で繰り返し実行しています。 1001の状態で繰り返されるため何回もlocation.hrefが実行されているような状態ではないでしょうか。 (ローカルだとレスポンスが早いため実行できているように見えるが、実際のインターネット上だとレスポンスがローカルよりかかるため) 以下のようにすれば良いと思います。 var timer; var max=1000; var i=1; function winScroll(){ if ( i > max ) { clearInterval ( timer ); GoNext() ; } else { scroll(i,0);} i++; } function GoNext() { location.href = "d003.html"; } <body onload="timer=setInterval('winScroll()',7)"> setIntervalで設定した繰り返し処理を、条件が達した時に解除します。 これにより、1000を越した場合、繰り返し処理が停止し、その後ページ遷移が呼ばれます。

その他の回答 (1)

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

function winScroll(){ ここがループしていないから、 else {scroll(i,0); } で止まっているんじゃないですか?

mqm
質問者

補足

同じコードが、アップロードする前の段階では、自分のPCでは IEでもFirefox でも正常に作動しております。

関連するQ&A