Нажмите на полный экран
Я создаю веб-приложение для будущего интернет-магазина Chrome. Есть ли способ смоделировать нажатие F11? Или просто команда, которая сделает текущее окно полноэкранным?
8 ответов
var elem = document.getElementById("myvideo");
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) {
elem.webkitRequestFullscreen();
}
Я понимаю, что это очень старый вопрос, и что предоставленные ответы были адекватными, поскольку он активен, и я наткнулся на это, проведя некоторое исследование на весь экран, я оставляю здесь одно обновление этой темы:
Существует способ "смоделировать" клавишу F11, но он не может быть автоматизирован, пользователю фактически нужно нажать кнопку, например, для запуска полноэкранного режима.
Переключить состояние полноэкранного режима при нажатии кнопки
В этом примере пользователь может переключаться в полноэкранный режим и из него, нажимая кнопку:
HTML-элемент, действующий как триггер:
<input type="button" value="click to toggle fullscreen" onclick="toggleFullScreen()">
JavaScript:
function toggleFullScreen() { if ((document.fullScreenElement && document.fullScreenElement !== null) || (!document.mozFullScreen && !document.webkitIsFullScreen)) { if (document.documentElement.requestFullScreen) { document.documentElement.requestFullScreen(); } else if (document.documentElement.mozRequestFullScreen) { document.documentElement.mozRequestFullScreen(); } else if (document.documentElement.webkitRequestFullScreen) { document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); } } else { if (document.cancelFullScreen) { document.cancelFullScreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); } } }
Перейти в полноэкранный режим по нажатию кнопки
Этот пример позволяет вам включить полноэкранный режим без чередования, т.е. вы переключаетесь в полноэкранный режим, но для возврата к обычному экрану придется использовать клавишу F11:
HTML-элемент, действующий как триггер:
<input type="button" value="click to go fullscreen" onclick="requestFullScreen()">
JavaScript:
function requestFullScreen() { var el = document.body; // Supports most browsers and their versions. var requestMethod = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen; if (requestMethod) { // Native full screen. requestMethod.call(el); } else if (typeof window.ActiveXObject !== "undefined") { // Older IE. var wscript = new ActiveXObject("WScript.Shell"); if (wscript !== null) { wscript.SendKeys("{F11}"); } } }
Источники найдены вместе с полезной информацией по этому вопросу:
Как сделать в Javascript полноэкранные окна (растягивая по всему экрану)
Как сделать браузер полноэкранным с помощью ключевого события F11 через JavaScript
Краткая личная версия букмарклета
javascript: document.body.webkitRequestFullScreen();
перейти на полный экран ← Вы можете перетащить эту ссылку на панель закладок, чтобы создать букмарклет, но впоследствии вам нужно отредактировать его URL: Удалите все до javascript
, включая одну косую черту: http://delete_me/
javascript:
[...]
Это работает для меня в Google Chrome. Вы должны проверить, работает ли он в вашей среде, и иначе использовать другую формулировку вызова функции, например, javascript:document.body.requestFullScreen();
- посмотреть другие ответы на возможные варианты.
На основе ответов @Zuul и @default - спасибо!
Если вы хотите переключить всю вкладку в полноэкранный режим (как при нажатии клавиши F11) document.documentElement
это элемент, который вы ищете:
function go_full_screen(){
var elem = document.documentElement;
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) {
elem.webkitRequestFullscreen();
}
}
Я попробовал другие ответы на этот вопрос, и есть ошибки с различными API-интерфейсами браузера, особенно Fullscreen
против FullScreen
, Вот мой код, который работает с основными браузерами (по состоянию на 1 квартал 2019 года) и должен продолжать работать, когда они стандартизируются.
function fullScreenTgl() {
let doc=document,elm=doc.documentElement;
if (elm.requestFullscreen ) { (!doc.fullscreenElement ? elm.requestFullscreen() : doc.exitFullscreen() ) }
else if (elm.mozRequestFullScreen ) { (!doc.mozFullScreen ? elm.mozRequestFullScreen() : doc.mozCancelFullScreen() ) }
else if (elm.msRequestFullscreen ) { (!doc.msFullscreenElement ? elm.msRequestFullscreen() : doc.msExitFullscreen() ) }
else if (elm.webkitRequestFullscreen) { (!doc.webkitIsFullscreen ? elm.webkitRequestFullscreen() : doc.webkitCancelFullscreen()) }
else { console.log("Fullscreen support not detected."); }
}
Вот несколько способов сделать это:
Я бы посоветовал предоставить всплывающее окно, спрашивающее пользователя, хочет ли он / она перейти на полный экран, а затем соответственно вызвать этот javascript.
var elem = document.getElementById("myvideo");
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();
}
}
//Internet Explorer 10 and earlier does not support the msRequestFullscreen() method.
//set height of html
$("html").css("height", screen.height);
//set width of html
$("html").css("width", screen.width);
//go to full screen mode
document.documentElement.webkitRequestFullscreen();
Так просто попробуйте это
<div dir="ltr" style="text-align: left;" trbidi="on">
<!-- begin snippet: js hide: false console: true babel: null -->