gpt4 book ai didi

javascript - 如何在aspx页面上挂接默认的beforeunload事件?

转载 作者:行者123 更新时间:2023-12-02 20:38:41 25 4
gpt4 key购买 nike

我在 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>

这应该允许您将自己的逻辑注入(inject)到页面中,并自行决定页面卸载时执行哪些代码。

关于javascript - 如何在aspx页面上挂接默认的beforeunload事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2847162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com