#javascript #internet-explorer #keydown #html5-fullscreen
Вопрос:
Я работаю с полноэкранным api.
Я добавил этот полифилл:
let doc = document as any;
if (!doc.requestFullscreen) {
document.body.requestFullscreen = doc.body.mozRequestFullScreen ||
doc.body.webkitRequestFullscreen || doc.body.msRequestFullscreen;
document.exitFullscreen = doc.mozCancelFullScreen || doc.webkitExitFullscreen ||
doc.msExitFullscreen;
}
У меня есть кнопка пользовательского интерфейса для включения полноэкранного режима, и все работает нормально (chrome IE 11, edge, opera, firefox)
Также у меня есть обработчик ввода ключа:
if (args.keyCode === 70) {
args.preventDefault();
if (!this.isInFullScreen) {
document.body.requestFullscreen();
}
else {
document.exitFullscreen();
}
this.InFullScreen = !this.isInFullScreen;
}
Но включение/выключение полноэкранного режима нажатием клавиши F не работает в IE 11.
Функция msRequestFullscreen просто ничего не делает.
Нет никаких ошибок консоли или smth.
В других браузерах работает нормально.
Как я могу решить эту проблему?
Ответ №1:
Я могу воспроизвести проблему. msRequestFullscreen
работает в IE 11, но просто не работает в keyCode
событии.
В качестве обходного пути я предлагаю вам использовать ActiveXObject
SendKeys
F11. Это может сделать его полноэкранным в IE 11. Вы можете добавить следующий код:
if ("ActiveXObject" in window) {
var wscript = new ActiveXObject("Wscript.shell");
wscript.SendKeys("{F11}");
}
Комментарии:
1. Спасибо вам за ваш ответ. Это обходное решение добавляет некоторые неудобства для пользователя. Нужно добавить сайт в список надежных и изменить некоторые настройки. И вы не можете выйти из полноэкранного режима с помощью щелчка пользовательского интерфейса или повторного нажатия клавиши F, работает только F11.
2. Да, для этого необходимо изменить некоторые настройки IE. Я также нахожу похожую тему , и, похоже, сейчас нет других решений. Поскольку IE собирается уйти на пенсию, я не уверен, что эта проблема будет исправлена. Давайте подождем, чтобы посмотреть, есть ли у других членов сообщества какие-либо другие обходные пути.