2012-01-14 17 views
1

有没有什么办法来捕捉页面刷新并暂停使用javascript,jquery或其他什么的一段时间?任何方式来捕捉页面刷新并暂停它?

这是必要的,以防止在一次重要的工作中意外按下刷新键,并且需要在刷新页面之前处理和保存。

在我之前发表在这个论坛上的一个问题中,在讨论这个问题的某个时刻,我不得不面对这个问题,这个问题还没有解决。我认为将其作为个人问题发布是非常值得的。上述问题是here。问题的一部分包含问题。

脚本语言是PHP。还是应该使用其他语言来实现目标?

回答

6

看来这可以用window.onbeforeunload()来实现,就像在this example中一样。

<script type="text/javascript"> 
    window.onbeforeunload = function() { 
     return "You sure you want to leave? You will lose all your work!"; 
    } 
</script> 
+0

假设用户决定不离开页面。以前在页面上计算的所有javascript变量值是否保留? – 2012-01-14 12:38:40

+0

从我的理解是“卸载之前”,因此在用户确认他们确定要离开页面之前,没有任何东西会被卸载。 – 2012-01-14 12:42:24

+0

在用户不知道的情况下,可能会在技术后端运行某些内容。这些任务需要刷新。如果用户选择刷新页面,那么如何捕获并暂停刷新以便稍后再发布。 – 2012-01-14 12:44:37

-1

我认为你应该使用:

<body onbeforeunload="return 'are you sure you want to move away from this page?';"> 
+0

删除'confirm()'并返回提示信息。但是,最近的firefox版本中只会显示一条通用消息。 – ThiefMaster 2012-01-14 12:34:27

+0

@Kariem Soudy,看到我的第二个评论,对Cillosis。 – 2012-01-14 12:45:38

+0

@ThiefMaster,请参阅我的第二条评论,以治疗偏头痛。 – 2012-01-14 12:46:10

0

我不认为有一种方法可以停止或暂停刷新页面。是的,您可以给出警告,但为了安全起见,您只需在每次表单字段更改时使用JavaScript填充表单输入字段的当前状态即可。用户按下单选按钮? Cookies已更新。用户更新的输入字段? Cookies已更新。

然后,在页面加载时,只需让php或javascript读取cookie并填写表单即可。

+0

no ajax?如果是ajax,那么我在上一篇文章中的问题仍然是 – 2012-01-18 13:10:56

+0

Ajax或cookies,您的选择。除非你有非常高负载的网站,人们每天都有数千次未完成的页面离开页面,否则我没有任何主要的缺点。 – Ranty 2012-01-18 13:49:25