Сбой webkitRequestFullScreen при передаче Element.ALLOW_KEYBOARD_INPUT в Safari 5.1.2 - PullRequest
6 голосов
/ 08 декабря 2011

При попытке использовать полноэкранный API-интерфейс javascript возникает следующая проблема, особенно в Safari 5.1.2. Скопировав и вставив следующие строки в ваш браузер на загруженной странице, вы можете увидеть эффект.

Это работает в Chrome 15 и Safari 5.1.2:

 javascript:document.querySelector('body').webkitRequestFullScreen();

Это работает в Chrome 15, но не работает в Safari 5.1.2:

 javascript:document.querySelector('body').webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);

ALLOW_KEYBOARD_INPUTпохоже, что он должен работать в Safari, согласно документации здесь: http://developer.apple.com/library/safari/#documentation/WebKit/Reference/ElementClassRef/Element/Element.html

Есть идеи, почему это не работает?

Ответы [ 3 ]

9 голосов
/ 01 февраля 2012

Это известная ошибка Safari. Его можно прослушать при переключении на весь экран:

someElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
if (!document.webkitCurrentFullScreenElement) {
    // Element.ALLOW_KEYBOARD_INPUT does not work, document is not in full screen mode
}

Используйте этот анализ в реальном времени, и, следовательно, ваш код будет поддерживать исправление ошибок в Safari в будущем.

3 голосов
/ 26 ноября 2012

someElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT) работает в Chrome.

И someElement.webkitRequestFullScreen() работает в Safari 5.1.7

Вся тестовая база на Windows 7.

1 голос
/ 09 января 2012

Я только что столкнулся с той же проблемой, и это определенно ошибка.

Это может быть случай Необнаружимые . Думаю, нам придется использовать хороший старый браузер, сниффинг.

...(/Safari/.test(navigator.userAgent) ? undefined : Element.ALLOW_KEYBOARD_INPUT)

[править] ... в этом случае ввод с клавиатуры невозможен. Поэтому я думаю, что лучше всего отключить полноэкранный режим в Safari. [/ Edit]

Имейте в виду, что полноэкранный API в данный момент находится на очень ранней стадии и не должен использоваться в производстве

...