【问题标题】:Javascript alert suppresses other javascript functionsJavascript 警报抑制其他 javascript 函数
【发布时间】:2013-03-29 09:23:52
【问题描述】:

我有以下问题:我想通过警报警告用户即将到来的会话超时。当实际会话超时发生时,我想弹出另一个警报并转发到任何网站。我的方法适用于 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); 

【问题讨论】:

  • 也许在这里使用自定义警报对话框(HTML、CSS)会更好。
  • 喜欢这个:jqueryui.com/dialog
  • 谢谢,jquery 对话框做到了!

标签: javascript alert


【解决方案1】:

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

编辑: 有很多库可以解决这个问题,但这是另一个问题的一部分。
Growl style notifications that are library/framework independent?

【讨论】:

    【解决方案2】:

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

    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();  
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2011-12-16
        • 2014-12-23
        • 1970-01-01
        • 2014-08-18
        • 2014-05-22
        • 2015-12-13
        • 1970-01-01
        • 1970-01-01
        • 2021-11-06
        相关资源
        最近更新 更多