我需要一個腳本,我可以把它放在應用程序的任何頁面上,它將運行X時間量。當它達到js中指定的時間量時,它將打開頁面上的疊加層或子彈出窗口。在任何一個窗口內,我都會給你文字應該說的。JavaScript超時腳本
在新窗口中他們將有兩個按鈕。
簡歷 註銷
如果他們點擊你恢復會殺死重疊或彈出窗口並刷新父頁面。如果他們點擊註銷,你將重定向到一個網址。
所有這些都應該在js中配置。覆蓋窗口將很簡單,所以我不需要任何複雜的東西像jquery。只是一些很好的乾淨的OOP js手工製作會很好。
我需要一個腳本,我可以把它放在應用程序的任何頁面上,它將運行X時間量。當它達到js中指定的時間量時,它將打開頁面上的疊加層或子彈出窗口。在任何一個窗口內,我都會給你文字應該說的。JavaScript超時腳本
在新窗口中他們將有兩個按鈕。
簡歷 註銷
如果他們點擊你恢復會殺死重疊或彈出窗口並刷新父頁面。如果他們點擊註銷,你將重定向到一個網址。
所有這些都應該在js中配置。覆蓋窗口將很簡單,所以我不需要任何複雜的東西像jquery。只是一些很好的乾淨的OOP js手工製作會很好。
另一種方法:
用法:
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;
};
<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
}
}
我猜想,這已經是與清爽的會話保持登錄。如果是這種情況,那麼你應該記住,用戶在彈出一段時間後可能不會響應你的對話框。也就是說,彈出窗口可能會在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>
'的setTimeout( 「confirmStay()」,60000)' 不該」那只是第一個參數的「confirmStay」? – alex 2009-08-10 05:28:21
我認爲這兩個版本(字符串和函數引用)都受支持。 – finpingvin 2009-08-10 05:47:22
我總是在那裏放一個包含js聲明的字符串......但是我沒有趕上所有新的時尚,所以它可能已經過時了。 – Zed 2009-08-10 05:59:55