我有一個會話超時功能來實現,其中用戶呈現彈出窗口(即會話即將到期)的情況下,沒有活動爲30-完成分鐘。關閉彈出,如果用戶不提供任何響應
需要幫助的:
當這個彈出打開,讓用戶說已鎖定他的桌面,並且不提供輸入。那麼我想要的是 - 如果用戶沒有在1分鐘提供任何輸入,則此彈出將關閉,新彈出的窗口將顯示「Session是exprired」
任何人都可以請幫助。
我有一個會話超時功能來實現,其中用戶呈現彈出窗口(即會話即將到期)的情況下,沒有活動爲30-完成分鐘。關閉彈出,如果用戶不提供任何響應
需要幫助的:
當這個彈出打開,讓用戶說已鎖定他的桌面,並且不提供輸入。那麼我想要的是 - 如果用戶沒有在1分鐘提供任何輸入,則此彈出將關閉,新彈出的窗口將顯示「Session是exprired」
任何人都可以請幫助。
應該很容易實現。使用動作偵聽器來檢測用戶動作。
var userActionDetected = false;
var x = document.getElementById('yourID');
x.onclick = function(){
// some more stuff you wanna do
userActionDetected = true;
};
setTimeout(
function() {
if(!userActionDetected){
//close popups etc.
}
},
60000
)
如果彈出菜單已經被window.open
創建的,那麼你可以可以只使用這樣.close()
方法:
var popup = window.open('some url', 'name_of_the_window');
setTimeout(function(){
popup.close();
}, 60000);
在這裏,我只是關閉彈出後1分鐘不輸入任何檢查,所以你需要以某種方式檢查輸入。
如果問題是有關如何檢查的投入,我可以提供另一種答案。
你不能用普通alert()
盒做到這一點,但至少有兩個選項:
顯示警報,用一記,本次會議將屆滿一分鐘便後呈(可能顯示確切的時間到期)。如果用戶在時間結束後點擊「確定」,它會回來並說「對不起,您的會話已過期」。
自定義警告框。這可以通過具有元素覆蓋屏幕很容易地實現與另一個顯示的信息:
實施例:
<div id="mask"><div id="alert">Your session will expire soon</div></div>
CSS:
#mask {
position: fixed;
left: 0; right: 0; top: 0; bottom: 0;
/* fallback for browsers that don't support rgba() */
background: #cccccc;
background: rgba(255,255,255,0.75);
}
#alert {
position: fixed;
left: 50%;
width: 200px;
margin-left: -100px; /* half the width */
top: 20%;
background: white;
color: black;
}
當然,你可以使用按鈕進一步定製本等。 jQuery爲此提供了一些庫,但是我在40行原始JavaScript中創建了一個完全可定製的框(帶有自定義文本和回調的無限按鈕)。對於他自己...
jQuery可用? – Peter