私はフルスクリーンのjavascriptがSafariでは動作しませんが、WebkitブラウザのChromeで動作する理由をインターネットで検索しています。サファリはwebkitRequestFullScreen
のアドオンをelement.ALLOW_KEYBOARD_INPUT
でサポートしていないようです。ALLOW_KEYBOARD_INPUTの代わりにjavacriptのフルスクリーン
function cancelFullScreen(el) {
var requestMethod = el.cancelFullScreen || el.webkitCancelFullScreen || el.mozCancelFullScreen || el.exitFullscreen;
if (requestMethod) { // cancel 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}");
}
}
}
function requestFullScreen(el) {
// Supports most browsers and their versions.
var requestMethod = el.requestFullScreen || el.webkitRequestFullScreen(el.ALLOW_KEYBOARD_INPUT) || 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}");
}
}
return false
}
function toggleFull() {
var elem = document.body; // Make the body go full screen.
var isInFullScreen = (document.fullScreenElement && document.fullScreenElement !== null) || (document.mozFullScreen || document.webkitIsFullScreen);
if (isInFullScreen) {
cancelFullScreen(document);
} else {
requestFullScreen(elem);
}
return false;
}
誰でもサファリをフルスクリーンで受け付けることができ、まだキーボード入力を処理できる方法を知っていますか?
この問題に関して、私はこのバグに遭遇しました。 Safari 8.0.6(OS X)では、既にフルスクリーンモードになっている場合、リフレッシュを実行すると、キーボードが機能し始めます。無効化されたキーの押下を示すはずのBumpサウンドも取得するので、まだ迷惑です。しかし、キーを押すことは実際に通り抜けます。 – akauppi