Я пытаюсь разработать простой сценарий, который ограничивает, если пользователь может или не может выйти из полноэкранного режима, основываясь на запросе пароля. Его главная цель - не допустить, чтобы посетители музея использовали интерактивное устройство для других целей, кроме своей основной цели, - это браузерное приложение, которое учит некоторым вещам о выставленных там вещах, поэтому я и пытаюсь написать этот сценарий на JS.
Итак, я создал простой код, который в основном должен прослушивать событие fullscreenchange
и действовать на его основе, но именно здесь я сталкиваюсь с моей самой большой проблемой: очевидно, нет.
Что он делает в основном:
- Проверьте, был ли вызван fullscreenchange;
- если это так, посмотрите, пытается ли пользователь войти или выйти из полноэкранного режима;
- если пользователь выходит из полноэкранного режима, попросите его ввести пароль;
- Если пароль неверный, он должен снова включить полноэкранный режим.
Взгляните на то, что у меня есть сейчас:
document.addEventListener("fullscreenchange", function() {
fullscreenchange();
});
document.addEventListener("mozfullscreenchange", function() {
fullscreenchange();
});
document.addEventListener("webkitfullscreenchange", function() {
fullscreenchange();
});
document.addEventListener("msfullscreenchange", function() {
fullscreenchange();
});
function fullscreenchange() {
var fullscreen = (window.fullScreen) || (window.innerWidth == screen.width && window.innerHeight == screen.height);
if(!fullscreen)
{
if(!passwordChecks()){
openFullscreen()
return;
}
}
}
function openFullscreen() {
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.mozRequestFullScreen) { /* Firefox */
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) { /* Chrome, Safari & Opera */
elem.webkitRequestFullscreen();
} else if (elem.msRequestFullscreen) { /* IE/Edge */
elem.msRequestFullscreen();
}
}
function passwordChecks(){
var pass = prompt("Enter password to leave fullscreen:");
if(pass == "leave123")
return true;
return false;
}
Скрипт не возвращает никаких ошибок на консоли (используя DevTools из Chrome). Но это также не работает, когда вы пытаетесь выйти из полноэкранного режима, ничего не происходит, поэтому я упомянул, что событие fullscreenchange
явно не работает.
Пожалуйста, дайте мне знать, если есть какие-либо ошибки в этом коде, и что можно сделать для достижения конечной цели. Надеюсь, все просто, но мне очень нужна ваша помощь, ребята.
Спасибо.