Вопрос по html, javascript – Javascript для определения, если пользователь меняет вкладку

33


Я хочу написать веб-страницу для онлайн-викторины. Основное требование, которое у меня есть, заключается в том, что, если человек, проводящий тест, меняет вкладку или открывает новое окно даже без сворачивания браузера, то есть, если человек пытается увидеть ответ из какого-то другого окна / вкладки, викторина должен остановиться. Как я могу это сделать?
P.S: это не должна быть какая-то очень новая функция HTML5. Я хочу, чтобы она поддерживалась всеми основными браузерами в настоящее время.

Вы не обнаружите, происходит ли это в другом окне браузера. Denys Séguret
Ну, конечно, изменение вкладки можно обнаружить с помощью Javascript, насколько я знаю. Что я хотел знать, так это то, можно ли обнаружить изменение фокуса окна, например, открытие нового браузера! Maxsteel

Ваш Ответ

4   ответа
0

$(window).on('focus', function () {

});

$(window).on('blur', function () {

});

$().focus & Амп;$().blur устарели.

23

которые его поддерживают, вы можете использовать API видимости страницы, доступный в HTML5. Он не обнаруживает непосредственно изменения вкладок, скажем так, но изменения видимости. Который будет включать (но не ограничиваться) изменения вкладки.

Увидетьhttps://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_API

Error: User Rate Limit ExceededAlt + TabError: User Rate Limit ExceededdoesError: User Rate Limit Exceeded
49

активна ли вкладка или окно, присоединив к окну прослушиватель событий размытия / фокуса.

в jQuery это было бы

$(window).focus(function() {
    //do something
});

$(window).blur(function() {
    //do something
});

цитата из этого ответа ТАК:https://stackoverflow.com/a/1760268/680578

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Maxsteel
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
10

Лучшая нативная функция, не требующая jQuery.

document.hasFocus

Проверьте ручку, проверьте, что произойдет, когда вы перейдете по ссылке и вернетесь на вкладку codepen.

https://codepen.io/damianocel/pen/Yxxzdj

Error: User Rate Limit Exceeded

Похожие вопросы