Javascript 当用户按下刷新按钮或后退按钮时重定向

Javascript 当用户按下刷新按钮或后退按钮时重定向,javascript,python,html,django-nonrel,Javascript,Python,Html,Django Nonrel,一旦用户按下“刷新”或“浏览器后退”按钮,我想将用户重定向到其中一个页面以重新启动应用程序。我的javaScript代码如下: var workIsDone = false; window.onbeforeunload =confirmBrowseAway; function confirmBrowseAway() { if (!workIsDone) { alert("You are moving to choice page"); window.location.hr

一旦用户按下“刷新”或“浏览器后退”按钮,我想将用户重定向到其中一个页面以重新启动应用程序。我的javaScript代码如下:

var workIsDone = false;
window.onbeforeunload =confirmBrowseAway;
function confirmBrowseAway()
{
  if (!workIsDone) {
     alert("You are moving to choice page");
     window.location.href="/choice_page/";

  }
}
function abc(){
workIsDone=true;
}
//.
//.
<div align="center"><input class="button blue" type="Submit" value="Next" onClick="abc()"></div>

您可以试试这个,但它只在我测试的IE ie8中有效:

<script language="javascript">
function document.onkeydown() {
if (event.keyCode == 116) {
   alert("MOVING AWAY");
   window.location.href="/choice_page/"; 
   event.keyCode = 0; 
   event.cancelBubble = true; 
   return false; } 
} 
</script>

是如何检测刷新

在解决方案中做一些局部更改对我有用。 谢谢大家,,
Sunil Chauhan

当用户不小心尝试浏览,并希望单击“取消”时,您会怎么做?“仅仅是一个提醒是可怕的可用性。@斯蒂芬:给用户“取消”按钮并给他继续操作的机会的问题最终会给出错误的结果,用户将得不到任何有用的东西。这就是为什么我认为与其在最后给出错误的结果,我应该要求用户再次启动测试,并发出警告,不要再次按刷新。伙计们,有什么建议吗?我希望这并不像我认为的那么难。谢谢你,如果他们取消了,这并不意味着页面重新加载了错误的数据,这只是意味着他们根本不会离开它。请尝试在此处键入答案,然后单击“上一步”按钮,我认为这是您需要的行为。@Stephan:不,要求用户完全完成应用程序的全部工作,或者在刷新时重新启动。根据您的建议,我做了一些更改。但它会重新提交上次提交的数据,以防用户继续。请查看我的后续操作。我的应用程序将被具有不同浏览器的用户使用。因此,我怀疑这是否适合我的场景。ábio:我认为使用window.onbeforeunload可以检测到刷新,但问题是,如果用户选择继续他的工作,最后的数据将被重新提交。有什么线索吗?
<script language="javascript">
function document.onkeydown() {
if (event.keyCode == 116) {
   alert("MOVING AWAY");
   window.location.href="/choice_page/"; 
   event.keyCode = 0; 
   event.cancelBubble = true; 
   return false; } 
} 
</script>