Запуск веб-сайта в полноэкранном режиме
Я ищу трюк, чтобы поместить мой сайт в полноэкранный режим без взаимодействия с человеком.
Я нашел несколько примеров, используя методы HTML5, но все это должно быть вызвано взаимодействием человека.
Этот веб-сайт будет отображаться на экране телевизора...
Я уже думаю, что загружаю веб-сайт с использованием SWF файла в полноэкранном режиме, но вместо того, чтобы идти в этом направлении, я хотел бы подчеркнуть все возможности, используя только шаблон по умолчанию (html, css и javascript)
Ответы
Ответ 1
Вы не можете заставить веб-сайт отображаться в полноэкранном режиме.
Представьте себе проблемы безопасности, если это возможно.
Вредоносные веб-сайты могут "захватить" менее компьютерный грамотный рабочий стол для всех видов сомнительных дел.
Все JS fullscreen api будут вызывать ошибку, подобную этой:
"Failed to execute 'requestFullScreen' on 'Element': API can only be initiated by a user gesture."
Если вы попытаетесь просто вызвать его из своего кода.
Я довольно уверен, что Flash похож на то, что для взаимодействия с пользователем требуется полноэкранный режим. В противном случае мы увидели бы нашу долю полноэкранных всплывающих окон, которые почти невозможно закрыть.
Ответ 2
Другие ответы уже описывают, как вы можете работать в полноэкранном режиме более или менее независимо от браузера.
Однако проблема взаимодействия с пользователем остается.
Вы не можете принудительно отображать свою веб-страницу в полноэкранном режиме по соображениям безопасности.
Для этого требуется взаимодействие с пользователем.
Кроме того, браузер покидает полноэкранный режим, когда пользователь переходит на другую страницу, даже на том же сайте, и (а) он должен будет выполнить некоторое "взаимодействие с пользователем" на каждой странице, чтобы вернуться в полноэкранный режим.
Вот почему ваш сайт должен быть одной страницей, если вы хотите, чтобы он был полноэкранным.
Вот что я предлагаю:
Используйте одну всплывающую страницу, на которой есть скрытый iFrame.
Всякий раз, когда пользователь щелкает в любом месте или нажимает любую клавишу, просто установите этот iFrame в полноэкранный режим и покажите его. Когда вы получаете событие при выходе из полноэкранного режима, снова скройте iFrame, чтобы отобразить всплеск.
Связи открываются в том же фрейме по умолчанию, поэтому вы останетесь в полноэкранном режиме, пока пользователь явно не покинет его или некоторые ссылки не откроются на новой вкладке.
Вот пример, который работает в Chrome:
(Посмотрите в действии. Используйте другие ответы, чтобы сделать его независимым от браузера.)
<html>
<head>
<script language="jscript">
function goFullscreen() {
// Must be called as a result of user interaction to work
mf = document.getElementById("main_frame");
mf.webkitRequestFullscreen();
mf.style.display="";
}
function fullscreenChanged() {
if (document.webkitFullscreenElement == null) {
mf = document.getElementById("main_frame");
mf.style.display="none";
}
}
document.onwebkitfullscreenchange = fullscreenChanged;
document.documentElement.onclick = goFullscreen;
document.onkeydown = goFullscreen;
</script>
</head>
<body style="margin:0">
<H1>Click anywhere or press any key to browse <u>w3schools</u> in fullscreen.</H1>
<iframe id="main_frame" src="http://www.w3schools.com" style="width:100%;height:100%;border:none;display:none"></iframe>
</body>
</html>
P.S. Мне нравится ссылка, предоставленная @jsve выше, и это еще лучше: изменить вашу ОС:).
Кроме того, я не веб-разработчик. Просто подумал, что этот вопрос будет интересен для изучения.
Ответ 3
Возможно, вы сможете использовать методы requestFullScreen(), как описано в https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode.
Примечание. Это по-прежнему требует ввода пользователем, но избегайте использования вспышки.
function toggleFullScreen() {
if (!document.fullscreenElement && // alternative standard method
!document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement ) { // current working methods
if (document.documentElement.requestFullscreen) {
document.documentElement.requestFullscreen();
} else if (document.documentElement.msRequestFullscreen) {
document.documentElement.msRequestFullscreen();
} else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
} else if (document.documentElement.webkitRequestFullscreen) {
document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
}
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}
}
toggleFullScreen();
Это позволяет странице активировать полноэкранный режим и может быть активирован с помощью загрузки страницы на странице javascript. Тем не менее, поддержка старых браузеров отсутствует.
Ответ 4
Когда мне нужно было сделать что-то подобное, я использовал заставку. Кнопка для перехода в полноэкранный режим запросила его как атрибут JS pop:
onClick="window.open('pageName.html', 'test', 'fullscreen=yes')"
Это не является полной защитой, но работает лучше, чем любые другие методы, которые я нашел. Вероятно, вы не сможете это сделать без взаимодействия с пользователем, поэтому использование чего-то вроде всплывающего экрана позволяет свести к минимуму вторжение в нечто более общепринятое.