Перед выгрузкой — Safari (vanilla.js)Javascript

Форум по Javascript
Anonymous
Перед выгрузкой — Safari (vanilla.js)

Сообщение Anonymous »

Я создаю реализацию тестирования для своего класса (я учитель средней школы) и пытаюсь определить, покидает ли кто-то страницу, потому что он использует другую вкладку (visibilitychange) или другое приложение. (размытие) или переход на другую страницу на этой вкладке. В Chrome работает отлично. В Safari (MacOS) работает нестабильно.
https://sandbox-transparent-weaver.glitch.me/index.html
У меня получил

Код: Выделить всё

    window.addEventListener("blur", function () {
console.log("Blurred");
});
который работает точно так, как ожидалось, когда я размываю страницу, но она все равно видна

Код: Выделить всё

    window.addEventListener("visibilitychange", function () {
console.log("Change Vis");
});
который работает точно так, как ожидалось, когда я использую другую вкладку
Моя проблема заключается в следующем:

Код: Выделить всё

    window.addEventListener("beforeunload", function () {
event.preventDefault();
console.log("Before Unload");
});
Это работает, но только в ограниченных случаях. Он эффективно работает для обновления, закрытия вкладок и отправки формы, но совершенно не работает для нажатия ссылки на странице, выбора закладки или ввода нового URL-адреса на панели навигации.
Помогите, пожалуйста?!

Подробнее здесь: https://stackoverflow.com/questions/793 ... vanilla-js

Вернуться в «Javascript»