Установите окно в полноэкранном режиме (REAL fullscreen; F11) с помощью javascript

Есть несколько вопросов об этом, некоторые говорят, что это невозможно, некоторые говорят, что это возможно в IE, например в полноэкранном режиме Internet Explorer?, и мне интересно универсальное решение и ответ для этого.

Я создаю веб-страницу фотогалереи, и галерея действительно выделяет разницу при просмотре в полноэкранном режиме (как говорится в заголовке, я говорю об истинном полноэкранном режиме, а не о барах и хронометрах окна и т.д.), и я хотел бы поместите кнопку для полноэкранного режима. (нет, я не буду сильным FS без намерений пользователя, я тоже так ненавижу эту "функциональность" ). Возможно во Flash, когда инициируется посредством инициированного пользователем действия, такого как нажатие кнопки, и мне было интересно, вещь также доступна для Javascript. Логически, он должен иметь механизм, похожий на полноэкранный режим, инициированный пользователем Flash/SL. Если нет "универсальной" функциональности, которая будет работать для всех, я уверен (лучше, чем ничего) для частичной функциональности (я имею в виду поддержку НЕКОТОРЫХ браузеров тем, что НЕ устанавливая ширину/высоту окна и т.д., Не приходит с ответом говоря, чтобы установить ширину/высоту окна, я знаю, как это сделать, я тоже не ищу его).

Ответ 1

Теперь это возможно в последних версиях Chrome, Firefox и IE (11).

Следуя указателям Zuul на этот поток, я отредактировал его код, чтобы включить IE11 и возможность в полноэкранном режиме выбрать любой элемент на вашей странице.

JS:

function toggleFullScreen(elem) {
    // ## The below if statement seems to work better ## if ((document.fullScreenElement && document.fullScreenElement !== null) || (document.msfullscreenElement && document.msfullscreenElement !== null) || (!document.mozFullScreen && !document.webkitIsFullScreen)) {
    if ((document.fullScreenElement !== undefined && document.fullScreenElement === null) || (document.msFullscreenElement !== undefined && document.msFullscreenElement === null) || (document.mozFullScreen !== undefined && !document.mozFullScreen) || (document.webkitIsFullScreen !== undefined && !document.webkitIsFullScreen)) {
        if (elem.requestFullScreen) {
            elem.requestFullScreen();
        } else if (elem.mozRequestFullScreen) {
            elem.mozRequestFullScreen();
        } else if (elem.webkitRequestFullScreen) {
            elem.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
        } else if (elem.msRequestFullscreen) {
            elem.msRequestFullscreen();
        }
    } else {
        if (document.cancelFullScreen) {
            document.cancelFullScreen();
        } else if (document.mozCancelFullScreen) {
            document.mozCancelFullScreen();
        } else if (document.webkitCancelFullScreen) {
            document.webkitCancelFullScreen();
        } else if (document.msExitFullscreen) {
            document.msExitFullscreen();
        }
    }
}

HTML:

<input type="button" value="click to toggle fullscreen" onclick="toggleFullScreen(document.body)">

Где "document.body" - это любой элемент, который вы так пожелаете.

Также обратите внимание, что попытка запуска этих полноэкранных команд с консоли не работает в Chrome или IE. Однако у меня был успех с Firebug в Firefox.

Еще одна вещь, которую следует отметить, состоит в том, что эти команды "полного экрана" не имеют вертикальной полосы прокрутки, вам нужно указать это в CSS:

*:fullscreen
*:-ms-fullscreen,
*:-webkit-full-screen,
*:-moz-full-screen {
   overflow: auto !important;
}

Кажется, что "важно" для IE, чтобы сделать его

Вот пример его работы.

Ответ 2

Нет Старые версии IE (& le; 6) разрешили это, но эта функциональность рассматривается как проблема безопасности, поэтому современный браузер не позволяет.

Вы все еще можете позвонить window.open(url,'','fullscreen=yes'), что дает вам 90% пути, но имеет несколько разные результаты:

  • IE открывает окно с только заголовком и строкой URL. Окно имеет размер, чтобы заполнить весь экран и охватывает панель задач Windows.
  • Mozilla также открывает окно с только заголовком и URL-строкой. Однако новое окно наследует размеры окна открытия. Если окно открытия максимизировано, новое окно открывается максимально. (Панель задач не покрывается.)
  • Chrome также открывает окно с только заголовком и строкой URL. Новое окно наследует размеры окна открытия, но оно никогда не открывается максимально (даже если окно открытия максимально).

Это будет так же близко, как и с JavaScript. Другой вариант - создать что-то во Flash (ugh!) или просто нажать кнопку "полноэкранный", чтобы открыть лайтбокс, который говорит "Нажмите F11, чтобы перейти в полноэкранный режим", и скройте лайтбоксы на window.resize или нажмите кнопку отмены в лайтбокс.


Изменить: Правильный полноэкранный API (первый предложенный Mozilla и позже выпущенный в качестве предложения W3C), был реализован Webkit (Safari 5.1 +/Chrome 15+) и Firefox (10+). Краткая история и примеры использования здесь. Обратите внимание, что IE10 предположительно поддерживает не API.

Ответ 3

Вы можете сделать это с помощью подписанного java-апплета, у которого есть разрешение на запуск автоматизации script, чтобы вызвать нажатие клавиши в полноэкранном режиме. Но это общий хак, который будет не очень практичным, если ваши пользователи не будут против вашего сайта манипулировать своими машинами.

Ответ 4

Полноэкранная поддержка через java script не реализована для Chrome или Firefox. Однако вы можете получить его для MSIE. Но это также не функциональность F11.

Даже chrome.exe -kiosk не открывает страницу в полноэкранном режиме.

Причина в том, что не рекомендуется принуждать пользователя и открывать приложение в полноэкранном режиме. Если это не все всплывающие окна с разных сайтов, откроется в полноэкранном режиме, и вы закончите закрытие всех этих.