これに対する応答がなかったので、これが私が使用することになったハックです。これはかなり広く誰にでも適用できるはずです。SafariがW3標準で指定されたdocument.fullscreenElementを追加した後は、おそらくこれは近い将来必要になることはないでしょう。
私の場合、フルスクリーンボタンがあり、サイトがフルスクリーン(YouTubeビデオなど)のときにフルスクリーンボタンを「縮小」ボタンにしたかったのです。この一環として、サイトがフルスクリーンのときはいつでもボタンを「縮小」ボタンに変える:fullscreencssセレクターをすでに実装していました。
Safariが:-webkit-full-screencss疑似クラスを尊重していることに気づきました。したがって、ボタンの画像が「縮小」画像(疑似クラスを直接テストできないAFAIK)であることを確認するのは簡単な作業でした。そうである場合は、フルスクリーンである必要があります。
それで:
CSS:
.fullscreen-button
background-image: fullscreen.png
/* these match if .fullscreen-button is inside a fullscreen body element
(comma-separated selectors don't seem to work here?) */
body:fullscreen .fullscreen-button
background-image: fullscreen-exit.png
body:-webkit-full-screen .fullscreen-button
background-image: fullscreen-exit.png
body:-moz-full-screen .fullscreen-button
background-image: fullscreen-exit.png
JS:
isFullscreen = function() {
// this doesn't yet exist in Safari
if (document.fullscreenElement
|| document.webkitFullscreenElement
|| document.mozFullScreenElement) {
return true;
}
// annoying hack to check Safari
return ~$(".fullscreen-button").css("background-image").indexOf("exit")
}
このハックは誰でも使用できるはずです。フルスクリーンモードでボタンの背景画像を変更するようなことをしていない場合でも、特にそれが実際には表示されないものである場合は、いつでも簡単なcssルールを1つの要素に変更できるはずです。非表示の要素の背景色や、テキストを含まない要素のフォントサイズなど、JavaScriptでテストします。