请求在页面卸载时确认

时间:2009-10-12 09:03:39

标签: asp.net javascript confirm

在您提出新问题时,在StackOverflow上,您输入了问题,如果您决定离开该页面,则会收到“您确定”的确认。

我想在我的ASP.Net应用程序中执行相同的操作:

用户必须填写调查问卷,并且可以选择临时存储他的答案。如果用户决定离开页面而不临时存储他的答案,我们需要确认弹出并要求用户存储他的答案。

两个问题:

  • 在ASP.Net中页面卸载之前显示确认弹出窗口的正确方法是什么?
    我知道beforeunload事件,但我不想让它成为一个大的javascript hack。

  • 当用户点击“保存”按钮(无论如何都保存答案)时,我不希望确认启动

3 个答案:

答案 0 :(得分:5)

您必须在

中编写动作

onbeforeunload Event

在页面被卸载之前触发

<HTML>
<head>
<script>
function closeIt()
{
  return "Any string value here forces a dialog box to \n" + 
         "appear before closing the window.";
}
window.onbeforeunload = closeIt;
</script>
</head>
<body>
  <a href="http://www.microsoft.com">Click here to navigate to 
      www.microsoft.com</a>
</body>
</html>

答案 1 :(得分:0)

您应该注意"onbeforunload" event对于“保存”按钮,您可以制作一些脚本逻辑,例如取消订阅此事件或其他。

答案 2 :(得分:0)

你可以试试这个:

<button onclick="javascript:doSend()">send</button>
<button onclick="window.xbuttons +='save ';">save</button>
<button onclick="window.xbuttons +='edit';">edit</button>
<script>
   window.xbuttons = '';
   window.onbeforeunload = function(){
      if(!window.xbuttons.match(/save|edit/))
         return "Do you want to leave this page?";
   }
</script>

以下是关于onbeforeunload的注意事项:

  1. onbeforeunload 事件将使用href属性触发每个a(锚元素)
  2. onbeforeunload 事件将在通过javascript更改文档位置或更改地址栏上的网址时触发
  3. onbeforeunload 事件将针对使用 javascript:伪协议
  4. 的任何事件触发