Я хочу написать веб-страницу для онлайн-викторины. Базисное требование у меня в том, что если человек, принимающий викторину, меняет вкладку или открывает новое окно, даже не сводя к минимуму браузер, то есть, если человек пытается увидеть ответ от некоторых другое окно/вкладка, опрос должна остановиться. Как я могу это сделать?
P.S: это не должна быть какая-то очень новая функция HTML5. Я хочу, чтобы она поддерживалась всеми основными браузерами в настоящее время.
Javascript, чтобы определить, включена ли вкладка пользователя
Ответ 1
Вы можете определить, активна ли вкладка или окно, добавив в окно прослушиватель событий размытия/фокусировки.
в jQuery это будет
$(window).focus(function() {
//do something
});
$(window).blur(function() {
//do something
});
цитируется из этого ответа SO: fooobar.com/questions/15747/...
Ответ 2
Если вы настроите таргетинг на браузеры, которые его поддерживают, вы можете использовать API видимости страницы, доступный в HTML5. Он не определяет непосредственно изменения вкладок, но, наоборот, меняется видимость. Это будет включать (но не ограничиваясь) изменения вкладок.
См. https://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_API
Ответ 3
Лучшая нативная функция, не требующая jQuery.
document.hasFocus
Проверьте ручку, проверьте, что произойдет, когда вы перейдете по ссылке и вернетесь на вкладку codepen.
Ответ 4
С помощью jQuery:
$(window).on('focus', function () {
});
$(window).on('blur', function () {
});
$().focus
& $().blur
размыты.