Это должно быть возможно путем проверки существующего обработчика, назначенного событию onbeforeunload
, и, если он существует, сохранения ссылки на него перед заменой на собственный обработчик.
Ваша веб-часть может выдать следующий скрипт для этого:
<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>
Это должно позволить вам внедрить свою собственную логику в страницу и самостоятельно определить, какой код будет выполняться при выгрузке страницы.