【问题标题】:Javascript setTimeout on iOS SafariiOS Safari上的Javascript setTimeout
【发布时间】:2012-03-05 20:56:52
【问题描述】:

我正在编写一个小脚本,警告用户他的会话即将超时并且他/她的更改可能无法保存。

在任何浏览器上,效果都很好,我实现了一个解决方案,它只使用 setTimeout 在一定时间后触发对话框(除非用户在其间采取某些操作)。

但是,在 iOS Safari 上,这种方法不起作用,因为当用户导航到他/她手机上的另一个应用程序时,setTimeout 会“停止”。一旦用户再次打开 Safari 并返回该页面,计时器就会从上次中断的地方继续,而不是查看已过期的总时间。

关于如何处理不会在 iPhone 上中断的会话超时警告的任何建议?

【问题讨论】:

标签: javascript ios mobile-safari settimeout


【解决方案1】:

  • 在变量中设置会话的结束时间。

  • 不使用计数器,而是使用 javascript 的日期:
    // get a date object
    var today = new Date();
    
    // ask the object for some information
    var hours = today.getHours();
    var minutes = today.getMinutes();
    var seconds = today.getSeconds();
    var theHour = today.getHours();
    

  • 每秒比较结束时间和当前时间

    免责声明:处理用户返回和会话结束的情况。

  • 【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 2019-01-04
      • 1970-01-01
      • 2021-03-30
      • 2016-02-12
      • 2016-06-07
      • 2018-05-16
      相关资源
      最近更新 更多