javascript卸载页面时弹出提示框的问题

yatou1990 2010-07-06 09:15:57
function Run()
{
if (g_blnCheckUnload) {window.event.returnValue = 'You will lose any unsaved content'; }
}
<body onbeforeunload="Run();">
</body>
在点击页面的关闭按钮或者Alt+F4都会弹出提示框,但是如果用了一个web控件,点击控件刷新的时候也会弹出提示框,怎么办呢?
网上看见了一个方法:
<script type="text/javascript">
g_blnCheckUnload = true;
function Run()
{
if (g_blnCheckUnload) {window.event.returnValue = 'You will lose any unsaved content'; }
}
function change()
{
g_blnCheckUnload=false;
return true;
}
</script>

<body onbeforeunload="Run();">
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" OnClientClick="change();"/></div>
</form>
</body>
它用到了一个全局变量,个人觉得不好,如果web控件很多的话,岂不是每次都得要去改变那个全局变量的值。
希望高手们快来畅所欲言。
...全文
95 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-07-06
  • 打赏
  • 举报
回复
window.onbeforeunload=null;
threenewbee 2010-07-06
  • 打赏
  • 举报
回复
很不喜欢控件这套东西。要说不好,整个web forms都不好。
lo_back___ 2010-07-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
用个全局变量没有什么不好的。
[/Quote]

每次web控件的事件如果会postback 就会让页面重新刷新 而刷新过程就会触发onbeforeunload事件 所以必须要在web控件的事件中去修改全局变量的值 太麻烦.
lo_back___ 2010-07-06
  • 打赏
  • 举报
回复
用hiddenfield吧... 不便之处还是需要在每次web控件的刷新中修改hiddenfield的值 用来判断要不要弹出那个框框. 关注ing up!~
threenewbee 2010-07-06
  • 打赏
  • 举报
回复
用个全局变量没有什么不好的。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧