0

指定された非アクティブ時間 (IDLE 時間は 10 分間など) の後、アプリケーションはタイマー付きのポップアップ ボックスを表示し (60 59 58 ....1 のように表示されます)、そのボックスはキャンセル オプションが選択された状態で 60 秒以内に閉じる必要があります。ユーザーがオプションを選択しない場合、そのブラウザは閉じる必要があります。ユーザーが 60 秒以内にキャンセル オプションを選択した場合も、閉じる必要があります。

私が使用しているポップアップボックスを表示するsetTimeout("pop()",600000);には、ユーザーがオプションを選択しない場合、少なくともそのボックスにタイマーを含める方法を60秒以内に閉じる必要があります。これに対する解決策はありますか?

4

2 に答える 2

1

ポップアップウィンドウに以下のコードを入れてみてください。

<script>
  function mytimer()
  {
    setTimeout(function closewin(){window.close;}, 600000);
  }
</script>

<body onload="mytimer();">
于 2010-01-25T13:38:27.320 に答える
1

setTimeout()またはを使用できますsetInterval()。関数で、1 秒 (1000 ミリ秒) のタイムアウトで別のpop()関数を開始し、呼び出しごとにカウンターを減らしてラベルを更新します。カウンターが 0 に達したら、ボックスがまだ画面に表示されていることを確認し、表示されている場合は呼び出しますwindow.close()(ただし、すべてのブラウザーが実際に閉じようとして応答するとは限りません)。

例:

function pop() {
  var counter = 60;

  var box = document.createElement('div');
  var label = document.createElement('span');
  label.innerText = counter;
  box.appendChild(label);

  // Position box and label as you wish.

  function tick() {
    counter--;
    if (counter == 0) {
      window.close();
    } else {
      label.innerText = counter;
      setTimeout(tick, 1000);
    }
  }

  setTimeout(tick, 1000);
}
于 2010-01-25T13:43:16.503 に答える