1

我有以下问题:我想通过警报警告用户即将到来的会话超时。当实际会话超时发生时,我想弹出另一个警报并转发到任何网站。我的方法适用于 Firefox 和 IE。使用 Safari 和 Chrome,当我在第二次超时发生之前没有提交第一个警报时,第二个函数实际上永远不会执行。有什么提示吗?

setTimeout(function() {
    alert('Session timeout in 5 minutes...');
}, 30 * 1000);


setTimeout(function() {
    alert('Session timeout, sorry');
    location.href = 'http://google.com';      
}, 60 * 1000); 
4

3 回答 3

1

警报会暂停您的 javascript 执行。使用Growl或顶栏消息类型的通知被认为对 UI 更友好。

编辑:为此有很多库,但这是另一个问题的一部分。
独立于库/框架的咆哮式通知?

于 2013-03-29T09:28:23.097 回答
0

此问题将通过创建自定义警报框来解决。但是如果你想用浏览器警报框来做,你可以试试这个。

var nStartTime = new Date().getTime();

setTimeout(function() {
    alert('Session timeout in 5 minutes...');
    var nRemainingTime = 60 * 1000 -  (new Date().getTime() - nStartTime);
    nRemainingTime = nRemainingTime < 0 ? 0 : nRemainingTime ;
    setTimeout(function() {
        alert('Session timeout, sorry');
        location.href = 'http://google.com';         
    }, nRemainingTime); 
}, 30 * 1000);var nStartTime = new Date().getTime();  
于 2013-03-29T09:33:56.397 回答
0

alert() 和 confirm() 是两个停止 java 脚本执行的提示。

于 2013-03-29T09:44:55.133 回答