1

グローバルタイマーを持つサードパーティの JavaScript を見ています。タイマーは、セッションの有効期限が切れてから 5 分以内になるとモーダル アラート ボックスでユーザーに警告するために使用され、マウス クリックまたはキーストロークによりタイマーがリセットされます。

タイマーは OnLoad 中に設定されます。2 番目のタイマーを追加したかったのですが、モーダル アラート ボックスが表示されている間に 2 番目のタイマーが期限切れになると、動作が予測できないことに気付きました。簡単にするために:

var myFunkyTimer1;
var myFunkyTimer2;

function myOnLoadFunction() {
  // alert in 10 seconds
  myFunkyTimer1 = setTimeout(function(){alert("Get Funky!")}, 10000);
  // alert immediately after user clicks ok
  myFunkyTimer2 = setTimeout(function(){alert("GET RANDOM!")}, 11000); 
}

これは IE8 では問題なく動作します。ただし、IE9 では、ページの読み込み後 10 秒後に最初の警告ボックスが表示されますが、[OK] をクリックするまで 1 秒以上待つと、2 番目の警告ボックスは 2 ~ 11 秒後まで表示されません。

この問題は回避できますが、IE9 の setTimeout で同様の問題が発生したことがあるかどうか、およびモーダル ポップアップ ウィンドウの背後にあるタイマーをランダム化していることを Microsoft が知っているかどうか、興味がありました。

4

0 に答える 0