2012-03-26 82 views
0

我需要在會話超時前5分鐘顯示超時彈出窗口。到目前爲止,我已經得到了會話超時消息在實際會話超時5分鐘之前彈出?

<script type="text/javascript"> 

     function Timeout(intMilsec) { 
       setTimeout("window.focus(); alert('Your session will timeout in 5 
minutes')", intMilliseconds); 
     } 
</script> 

而在C#

if(Session["id"] != null) 
    { 

     int time = (Session.Timeout - 5) * (60 * 1000); 
     Img.Attributes.Add("onload", "Timeout(" +time + ");"); 
    } 
    else 
     Img.Attributes.Remove("onload"); 

5分鐘之前,從來沒有彈出窗口沒有顯示出來。我需要知道,如果我錯過任何設置

+0

但彈出窗口在5mins之前沒有顯示,也沒有顯示。如果我缺少任何設置,我需要知道。 – Tiger 2012-03-26 16:33:09

+0

請顯示您的c#代碼生成的實際JavaScript(通常可以通過在瀏覽器中查看視圖/源代碼來查看)。在你的頁面的某個地方,你需要調用'Timeout(5 * 60 * 1000)'來實際設置定時器5分鐘。 – jfriend00 2012-03-26 16:36:03

回答

0

爲什麼你使用圖像的onload事件我一直不明白,但無論如何...

您可以使用Page.ClientScript.RegisterStartupScript(typeof(string), "SessionTimeout", "setTimeout(" + time + ")", true);調用頁面加載腳本。

+0

但是,我需要做出任何更改才能使彈出窗口在5分鐘前出現嗎?因爲它沒有顯示彈出窗口。 – Tiger 2012-03-26 17:04:34

+0

如果你必須改變一些東西,那就是javascript。該代碼只是寫一個調用你的彈出腳本。 – Adauto 2012-03-27 17:03:42

0

JavaScript正常運行?你有沒有單獨嘗試過?我嘗試了你發佈的完全相同的代碼,但它不起作用。試試這個:

function Timeout(intMilsec) { 
    setTimeout(function() { alert('Your session will timeout in 5 minutes'); }, intMilsec);​​​​​​​​​​​​ 
}