Ограничение выхода из полноэкранного режима на основе пароля (prompt ()) - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь разработать простой сценарий, который ограничивает, если пользователь может или не может выйти из полноэкранного режима, основываясь на запросе пароля. Его главная цель - не допустить, чтобы посетители музея использовали интерактивное устройство для других целей, кроме своей основной цели, - это браузерное приложение, которое учит некоторым вещам о выставленных там вещах, поэтому я и пытаюсь написать этот сценарий на 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 явно не работает.

Пожалуйста, дайте мне знать, если есть какие-либо ошибки в этом коде, и что можно сделать для достижения конечной цели. Надеюсь, все просто, но мне очень нужна ваша помощь, ребята.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...