[英]How to hook up default beforeunload event on an aspx page?
我在 SharePoint 中的应用程序页面之一上放置了一个自定义 Web 部件。 这个页面似乎已经有一个函数可以在windows 上执行beforeunload
Javascript 事件之前。
我的问题是我也需要在 windows beforeunload
事件上执行一些客户端代码(以提示用户在我的 web 部件中进行任何未保存的更改)。
我怎样才能做到这一点? 我的意思是让默认事件被触发并调用我的函数?
感谢任何帮助。
这应该可以通过检查分配给onbeforeunload
事件的现有处理程序来实现,如果存在,则在替换为您自己的处理程序之前保存对它的引用。
您的 Web 部件可能会发出以下脚本输出来执行此操作:
<script type="text/javascript">
// Check for existing handler
var fnOldBeforeUnload = null;
if (typeof(window.onbeforeunload) == "function") {
fnOldBeforeUnload = window.onbeforeunload;
}
// Wire up new handler
window.onbeforeunload = myNewBeforeUnload;
// Handler
function myNewBeforeUnload() {
// Perform some test to determine if you need to prompt user
if (unsavedChanges == true) {
if (window.confirm("You have unsaved changes. Click 'OK' to stay on this page.") == true) {
return false;
}
}
// Call the original onbeforeunload handler
if (fnOldBeforeUnload != null) {
fnOldBeforeUnload();
}
}
</script>
这应该允许您将自己的逻辑注入页面,并自行决定在页面卸载时执行哪些代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.