2011-10-20 3 views
62

Согласно this article Google Chrome 15 имеет полноэкранный JavaScript API.API для полноэкранного доступа Chrome

Я попытался заставить его работать, но не удалось. Я также искал официальную документацию напрасно.

Как выглядит API-интерфейс в полноэкранном режиме JavaScript?

+0

Это предложенная спецификация, которая будет реализована: https://wiki.mozilla.org/Gecko:FullScreenAPI#Proposed_Specification. – pimvdb

+0

Мне тоже не удалось заставить его работать, хотя они реализовали это в WebKit: https://bugs.webkit.org/show_bug.cgi?id=43099. Это ошибка Chromium, которая может быть актуальной: http://code.google.com/p/chromium/issues/detail?id=73923. – pimvdb

+2

Вы можете запустить его в режиме «киоск» (полный экран, без элементов управления), например: chrome.exe -kiosk http: // ... –

ответ

122

API-интерфейс работает только во время взаимодействия с пользователем, поэтому он не может быть использован злонамеренно. Попробуйте следующий код:

addEventListener("click", function() { 
    var el = document.documentElement, 
     rfs = el.requestFullscreen 
     || el.webkitRequestFullScreen 
     || el.mozRequestFullScreen 
     || el.msRequestFullscreen 
    ; 

    rfs.call(el); 
}); 
+2

Как определяется «пользовательское взаимодействие»? – Randomblue

+0

Большинство 'UIEvent' и 'MouseEvent', таких как' click' и 'keydown' и т. Д. –

+0

Это работает, чтобы войти в полный экран для меня, но когда пользователь переходит к следующей странице на моем сайте, он выходит полностью экран. Есть ли способ избежать этого? – alex9311

6

Следующий тест работает в Chrome 16 (Dev филиала) на X86 и Chrome 15 на Mac OSX Lion

http://html5-demos.appspot.com/static/fullscreen.html

+0

+1 Он также работает на Chrome 15 (стабильный канал). – pimvdb

+0

Когда я набираю «enterFullScreen()» с консоли, он не переходит в полноэкранный режим. – Randomblue

+3

Вы должны сделать requestFullScreen() вызов элемента, который вы хотите отобразить в полноэкранном режиме. Невозможно просто перейти в режим. Вот еще одно отличное описание FullScreen API Джона Дайера с полным примером http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugin/ –

32

Я сделал простую оболочку для Fullscreen API, называется screenfull.js, чтобы сгладить префикс беспорядок и исправить некоторые несоответствия в различных реализациях. Просмотрите demo, чтобы узнать, как работает Fullscreen API.

Рекомендуемая литература:

+0

Wow - такой отличный плагин, спасибо! Есть ли способ открыть ссылку в полноэкранном режиме, пока текущая вкладка остается неактивной? не нашел ничего подобного в демо. – cukabeka

12

Вот некоторые функции, которые я создал для работы с полноэкранным в браузере.

Они предоставляют как полноэкранный режим ввода/выхода для большинства основных браузеров.

function isFullScreen() 
{ 
    return (document.fullScreenElement && document.fullScreenElement !== null) 
     || document.mozFullScreen 
     || document.webkitIsFullScreen; 
} 


function requestFullScreen(element) 
{ 
    if (element.requestFullscreen) 
     element.requestFullscreen(); 
    else if (element.msRequestFullscreen) 
     element.msRequestFullscreen(); 
    else if (element.mozRequestFullScreen) 
     element.mozRequestFullScreen(); 
    else if (element.webkitRequestFullscreen) 
     element.webkitRequestFullscreen(); 
} 

function exitFullScreen() 
{ 
    if (document.exitFullscreen) 
     document.exitFullscreen(); 
    else if (document.msExitFullscreen) 
     document.msExitFullscreen(); 
    else if (document.mozCancelFullScreen) 
     document.mozCancelFullScreen(); 
    else if (document.webkitExitFullscreen) 
     document.webkitExitFullscreen(); 
} 

function toggleFullScreen(element) 
{ 
    if (isFullScreen()) 
     exitFullScreen(); 
    else 
     requestFullScreen(element || document.documentElement); 
} 
+0

Работает только для восстановления из полноэкранного режима. –

Смежные вопросы