2013-03-27 65 views
-1

我正在使用以下腳本從給定時間倒計時,並顯示腳本實時超時的剩餘時間+分鐘+秒。刷新JS代碼以在屏幕上顯示正確的數據

倒計時炒鍋完全沒有問題,但我面臨的問題是,使用下一個在瀏覽器以前按鈕時,時間沒有得到刷新,我看到老時間,而不是。它顯示以前或更晚的時間。

我知道,接下來以前按鈕在瀏覽器不刷新頁面,但我怎麼能解決這個問題?

JS

function timeout_warning(login_timeout) 
{ 
    var counter = 0; 
    var total_seconds = 0; 
    var colour = ''; 
    var interval_id = ''; 

    interval_id = setInterval(function() 
    { 
     counter++; 

     total_seconds = login_timeout - counter; 
     hours = parseInt(total_seconds/3600) % 24; 
     minutes = parseInt(total_seconds/60) % 60; 
     seconds = parseInt(total_seconds % 60, 10); 

     remaining = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds); 

     if (minutes == 0 && seconds == 0) 
     { 
      document.getElementById('font_timeout').innerHTML = 'Timeout'; 
      window.clearInterval(interval_id); 
     } 
     else 
     { 
      document.getElementById('font_timeout').innerHTML = remaining + 'sec'; 
     } 
    }, 1000); 
} 

HTML BODY

<body onload="timeout_warning('1800')"> 
+0

添加一個變化的哈希,並綁定到hashchange事件,這通常適用於瀏覽器後退和前進按鈕。 – adeneo 2013-03-27 10:28:26

回答

0

沒有一個活生生的例子,我只能提供意見,以解決方案。您可能希望我們使用JavaScript來從Cookie中加載剩餘時間,以便在單擊瀏覽器箭頭時,代碼將從Cookie中獲取時間,而不是從緩存數據中獲取時間。

0

A solution has already been posted on this並使用表單在頁面中存儲數據以查看用戶是否按下了後退按鈕。它設置了一些表單數據,如果頁面返回,它可以告訴數據是否已經設置,如果是,它需要強制重載(所以你的計時器會重新開始)。

相關問題