2009-08-10 11 views
0

私はアプリケーション内の任意のページに置くことができるスクリプトが必要であり、それはX時間実行されます。 jsで指定された時間が経過すると、ページ上のオーバーレイまたは子ポップアップウィンドウが開きます。どちらの窓の中でも、テキストが何を言わなければならないかを教えてくれるでしょう。JavaScriptタイムアウトスクリプト

新しいウィンドウには2つのボタンがあります。

履歴書 ログアウト

彼らはあなたがオーバーレイまたはポップアップウィンドウを殺し、親ページが更新されます再開]をクリックします。ユーザーがログアウトをクリックすると、URLにリダイレクトされます。

これらはすべてjsで設定する必要があります。オーバーレイウィンドウはシンプルなので、jqueryのような複雑なものは必要ありません。ちょうどいい素敵なきれいなOOPのjsハンドメイドはうまくいくでしょう。

答えて

2

さらに別のアプローチ:

使用法:

var timer = reloadTimer({ seconds:5, logoutURL: '/logout', 
          message:'Do you want to stay logged in?'}); 
    timer.start(); 

実装:

var reloadTimer = function (options) { 
    var seconds = options.seconds || 0, 
     logoutURL = options.logoutURL, 
     message = options.message; 

    this.start = function() { 
    setTimeout(function(){ 
     if (confirm(message)) { 
     window.location.reload(true); 
     } else { 
     window.location.href = logoutURL; 
     } 
    }, seconds * 1000); 
    } 
    return this; 
}; 
-1
<body onload="timerStart()"> 

...

function timerStart(){ 
    setTimeout(confirmStay, 60000) // 1 minute 
} 

function confirmStay() { 
    if (confirm("Press OK to stay here.")) { 
    // user pressed OK 
    timerStart(); // restart timer 
    } else { 
    // user pressed Cancel 
    location.href="http://example.com"; //redirect to homepage 
    } 
} 
+2

'のsetTimeout( "confirmStay()"、60000)' shouldn」第一引数の "confirmStay"であるt? – alex

+0

私は両方のバージョン(文字列と関数参照)がサポートされていると思います。 – finpingvin

+0

私はいつもjsステートメントを含む文字列を置いています...しかし、私はすべての新しいファッションに追いついていないので、古いかもしれません。 – Zed

0

私は、これはログインを維持するためにセッションをリフレッシュとは何かを持っていると仮定しています。その場合は、ポップアップした後、しばらくの間、ユーザーがダイアログに応答しないことがあることに注意してください。つまり、あなたのポップアップは10分後に表示され、セッションは15分間続くことがありますが、ユーザーが応答するまでに5分以上かかると、セッションは終了し、ページの最新表示が役立ちません。

<body onload="setTimeout(refreshLogin, 600000)"> 
    <script> 
     function refreshLogin() { 
      if (confirm("Press OK to refresh this page and renew your login.")) { 
      window.location.reload(); // refresh the page 
      } else { 
      window.location.href="http://example.com" //redirect to somewhere 
      } 
     } 
    </script> 
</body> 
関連する問題