iOS Safari上的Javascript setTimeout

时间:2012-03-05 20:56:53

标签: javascript ios mobile-safari settimeout

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

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

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

有关如何处理不会破坏iPhone的会话超时警告的任何建议吗?

1 个答案:

答案 0 :(得分:2)

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

  • 使用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();
    

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

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