我需要一个脚本,我可以放在应用程序的任何页面上,它将运行X时间。当它达到js中指定的时间量时,它将打开页面上的叠加层或子弹出窗口。在任一窗口中,我都会给你文字应该说的内容。
在新窗口中,他们将有两个按钮。
履历 注销
如果他们点击恢复,您将终止覆盖或弹出窗口并刷新父页面。如果他们点击退出,您将重定向到网址。
所有这些都应该在js中配置。叠加窗口很简单,所以我不需要像jquery那样复杂的东西。只是一些漂亮干净的OOP js手工制作会很好。
答案 0 :(得分: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 :(得分: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>
答案 2 :(得分:-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
}
}