В Angular, как предотвратить переход пользователя с текущей вкладки?
У меня есть приложение для экзамена, в котором мы хотели бы запретить пользователям менять вкладки или открывать новые вкладки во время экзамена в качестве меры безопасности. Можете ли вы предложить способы добиться того же?
3 ответа
Я не думаю, что это возможно, и ученики могли бы установить другие веб-браузеры или использовать смартфон, планшет, другой компьютер... для просмотра веб-страниц.
Я не думаю, что можно избежать открытия новых вкладок или окон. Однако вы можете проверить, находится ли ваше приложение в фокусе пользователя.
Подробный ответ по этой теме и совместимости браузера можно найти здесь. Есть ли способ определить, не активно ли окно браузера в данный момент?
Вы можете добиться этого, создав настольное приложение с браузером. Не так сложно, как может показаться, но для этого нужен другой стек технологий. Кроме того, очевидно, что это требует установки на клиентах, что может оказаться невозможным в вашем случае использования. Один из многих вариантов:
- Создать приложение WPF
- Заставить его оставаться на вершине, т.е. WPF всегда на вершине
- Добавить Chromium в качестве веб-браузера: Chromium
- Реализуйте некоторое настраиваемое поведение, например открытие тестовой страницы при запуске и т.
Предполагая, что технический стек известен, я бы предположил, что это можно сделать в течение пары часов, включая тестирование. Решение также дает вам дополнительный контроль, например, над кешированием браузера, которое вы можете отключить...