как подключить событие по умолчанию перед загрузкой на странице aspx? - PullRequest
0 голосов
/ 17 мая 2010

У меня есть пользовательская веб-часть, размещенная на одной из страниц приложения в SharePoint. Эта страница, кажется, уже имеет функцию, которая выполняется в Windows перед загрузкой события javascript.

Моя проблема заключается в том, что мне тоже нужно выполнить некоторый код на стороне клиента (чтобы запросить у пользователя несохраненные изменения в моей веб-части) в Windows до события ununload.

Как мне этого добиться? Я имею в виду, что событие по умолчанию будет запущено, а также вызовет мою функцию?

Ценю любую помощь.

Нихилу.

1 Ответ

2 голосов
/ 17 мая 2010

Это должно быть возможно путем проверки существующего обработчика, назначенного событию 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>

Это должно позволить вам внедрить свою собственную логику в страницу и самостоятельно определить, какой код будет выполняться при выгрузке страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...