Détecter si le navigateur est en mode plein écran
Est-il possible de détecter de manière fiable si un navigateur est en cours d'exécution en mode plein écran? Je suis assez sûr il n'y a pas de n'importe quel navigateur API je peux interroger, mais quiconque a travaillé dessus en examinant et en comparant certaine hauteur/largeur de mesures exposées par le DOM? Même si elle ne fonctionne que pour certains navigateurs, je suis intéressé à entendre parler de lui.
- Pourquoi avez-vous besoin de le détecter? Peut-être il ya une autre solution à votre problème?
- Lorsque le navigateur est en mode plein écran il n'y a aucun moyen de voir le temps indiqué par le système d'exploitation (par exemple, dans l'horloge dans la zone de notification de la barre des tâches sous Windows). Être en mesure de voir l'heure actuelle peut être important pour les utilisateurs de notre application web, donc nous aimerions être en mesure d'afficher une horloge lorsque le navigateur est plein de dépistage. D'écran de l'immobilier est à une prime lors de notre application est exécutée à des résolutions plus faibles comme 1024*768 donc nous aimerions seulement l'affichage de l'horloge lorsque le navigateur est plein projeté, si possible.
- Que faire si ils n'ont normalement pas d'une horloge sur son bureau, et aussi, ne pas utiliser leur navigateur en plein écran? Êtes-vous sûr que vous êtes le seul responsable pour eux, sachant l'heure actuelle?
- Notre désir de faire ceci est basé sur les commentaires des clients.
- Je ne comprends pas le troisième degré de la remise en question de la motivation ici. Il y a un certain nombre de raisons pour lesquelles une application web (par exemple), peut-être devriez regarder/se comportent différemment dans F11 mode que dans les chrome. L'accent sur la fourniture d'une solution plutôt que de te demander de l'intention.
Vous devez vous connecter pour publier un commentaire.
Chrome 15, Firefox 10, et Safari 5.1 maintenant fournissent des Api de programmation pour déclencher le mode plein écran. Le mode plein écran déclenché cette manière fournit des événements pour détecter plein écran changements et CSS pseudo-classes pour le style de fullscreen éléments.
Voir cette hacks.mozilla.org post de blog pour plus de détails.
Opéra traite plein écran comme une autre feuille de style CSS du type de support. Ils l'appellent L'Opéra De Montrer, et vous pouvez contrôler vous-même facilement:
Combiné avec Opéra@USB, j'ai personnellement trouvé cela très pratique.
Que sur la détermination de la distance entre la fenêtre d'affichage de la largeur et de la résolution de la largeur et de même pour la hauteur. Si c'est un petit nombre de pixels (surtout pour la hauteur), il peut être en plein écran.
Cependant, ce ne sera jamais fiable.
window.innerWidth
,document.body.clientWidth
,document.width
etdocument.documentElement.clientWidth
tous le même rapport de la valeur ...Juste pensé que je voudrais ajouter mon thruppence pour sauver quelqu'un claquement de leurs têtes. La première réponse est excellent si vous avez le contrôle complet sur le processus, c'est de vous initier la fullscreen processus dans le code. Inutile devrait-on le faire thissen en appuyant sur F11.
La lueur d'espoir à l'horizon se présentent sous la forme de cette recommandation du W3C http://www.w3.org/TR/view-mode/ qui va permettre la détection de fenêtre flottante (sans chrome), agrandie, réduite et en plein écran via les media queries (qui signifie bien sûr de la fenêtre.matchMedia et associés).
J'ai vu des signes que c'est dans le processus de mise en œuvre avec -webkit et -moz préfixes, mais il ne semble pas être dans la production de encore.
Donc non, pas de solutions, mais j'espère que je vais aider quelqu'un à faire un grand nombre de courir avant de frapper le même mur.
PS *:-moz-plein écran n'est doo-dah, mais agréable à connaître.
Firefox 3+ fournit une non-standard de la propriété sur la
window
objet qui indique si le navigateur est en mode plein écran ou pas:window.plein écran
.En Chrome d'au moins:
onkeydown
peut être utilisé pour détecter la touche F11 être pressé pour entrer en mode plein écran.onkeyup
peut être utilisé pour détecter la touche F11 être enfoncé pour quitter le plein écran.L'utiliser en conjonction avec la fonction de vérification pour
keyCode == 122
La partie la plus délicate serait de dire la keydown/keyup, de ne pas exécuter son code si l'autre l'a fait.
Pour Safari sur iOS pouvez utiliser:
Plus:
https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html
Cela fonctionne pour tous les nouveaux navigateurs :
Droit. Totalement en retard sur celui-ci...
À partir du 25 Nov, 2014 (le Temps de l'écriture), il est possible pour les éléments de demander l'accès plein écran, et par la suite le contrôle d'entrer/quitter le mode plein écran.
MDN Explication ici: https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode
D'explication par David Walsh: http://davidwalsh.name/fullscreen
Vous pouvez vérifier si
document.fullscreenElement
n'est pas nulle pour déterminer si le mode plein écran est activé. Vous aurez besoin de fournisseur préfixefullscreenElement
en conséquence. Je voudrais utiliser quelque chose comme ceci:https://msdn.microsoft.com/en-us/library/dn312066(v=vs. 85).aspx a un bon exemple de ce que je cite ci-dessous:
Il y a PAS de croix-navigateur variante:
Testé sur:
Kubuntu 13.10:
Firefox 27 (
<!DOCTYPE html>
est nécessaire, le script fonctionne correctement avec deux moniteurs), Chrome 33, Rekonq passe -Win 7:
Firefox 27, Chrome 33, Opera 12, Opera 20, c'est à dire 10 - pass
IE < 10 - l'échec
Ma solution est la suivante:
C'est la solution que j'ai appris à...
Je l'ai écrit comme un es6 module, mais le code devrait être assez simple.
Utilisateur
window.innerHeight
etscreen.availHeight
. Aussi les largeurs.Le Document propriété en lecture seule retourne l'Élément qui est actuellement présenté en mode plein écran dans le présent document, ou la valeur null si le mode plein écran n'est pas actuellement en cours d'utilisation.
Prend en charge tous les principaux navigateurs.