我在这里发布了这个问题,但是认为它可能值得单独提问。
我的目标是显示一个对话框,询问用户是否希望离开页面,如果存在未保存的更改。那一切都很好运作。但是下面描述的问题:
有没有人遇到过Internet Explorer触发onbeforeunload事件两次的问题?在Google周围浏览时,我发现这与(其他东西)ASP.NET linkbutton的HTML代码是<a href="javascript: __doPostBack...
有关。
显然,当IE遇到没有href="#"
的链接时,它会触发onbeforeunload事件。然后,当您确认我们显示的javascript对话框时,页面将执行“真正”的卸载以导航到其他页面,并第二次引发onbeforeunload事件。
互联网上提供的解决方案是设置布尔变量并在显示对话框之前进行检查。所以第二次,它就不会显示。这很好,但是当用户取消时,变量仍将被设置。因此,下次用户想要离开页面时,对话框就不会再显示了。
希望这有点清楚,并希望有人已经找到了解决办法?