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

我有一个自定义Web部件放置在SharePoint中的应用程序页面之一。这个页面似乎已经有一个函数,它可以在unload javascript事件之前在windows上执行。如何挂接aspx页面上的默认beforeunload事件?

我的问题是,我也需要执行一些客户端代码(以提示用户在我的web部分中的任何未保存的更改)在windows beforeunload事件。

我该如何做到这一点?我的意思是让默认事件被触发以及调用我的函数呢?

感谢任何帮助。

Nikhil。

回答:

这应该是可能的,方法是检查分配给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>

这应该让你注入自己的逻辑到页面,让你自己决定,以什么代码执行的页面卸载时。

以上是 如何挂接aspx页面上的默认beforeunload事件? 的全部内容, 来源链接: utcz.com/qa/266808.html

回到顶部