Перед выгрузкой — 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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