0

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

我想在我的 ASP.Net 应用程序中做同样的事情:

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

两个问题:

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

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

4

3 回答 3

4

你必须把动作写在

onbeforeunload 事件

在页面被卸载之前触发

<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>
于 2009-10-12T09:10:34.853 回答
0

您应该注意“onbeforunload”事件至于“保存”按钮,您只需编写一些脚本逻辑,例如取消订阅此事件或其他。

于 2009-10-12T09:12:10.527 回答
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. 当通过 javascript 或通过更改地址栏上的 url 更改文档位置时,onbeforeunload事件将触发
  3. onbeforeunload事件将在任何使用javascript:伪协议的事件上触发
于 2009-10-12T09:40:42.780 回答