在互联网上,您会发现很多人建议您使用类似的东西
window.onbeforeunload = null
但这在 IE6 中对我不起作用。在 MSDN 文档中阅读事件对象时,我发现了对 event.cancelBubble 属性的引用,我认为这是解决方案。但是感谢Orso指出设置“event.cancelBubble=true”是没有用的,摆脱confirm提示的方法是完全排除return语句,我选择使用布尔变量作为标志来决定是否退货或不退货。在下面的示例中,我以编程方式在后面的代码中添加了 javascript 代码:
Page.ClientScript.RegisterStartupScript(typeof(String), "ConfirmClose", @" <script> window.onbeforeunload = confirmExit; function confirmExit() { if(postback == false) return ""Please don't leave this page without clicking the 'Save Changes' or 'Discard Changes' buttons.""; } </script>");
然后帮助按钮包含以下 aspx 标记:
OnClientClick="postback=true;return true;
这会将“回发”变量设置为 true,该变量在 confirmExit() 函数中被拾取,具有取消事件的效果。
希望您觉得这个有帮助。它在 IE6 和 FF 1.5.0.2 中经过测试和工作。