Comment détecter les DPI de l'écran à l'aide de JavaScript
Le seul moyen que j'ai trouvé jusqu'à maintenant, c'est d'avoir la offsetWidth, offsetHeight d'un test div
élément avec height
et width
d'un pouce:
http://www.infobyip.com/detectmonitordpi.php
Est-il un moyen de détecter l'écran DPI via JavaScript à la place?
Merci,
Atara.
Cela dépendra de l'affichage PPP étant calibrés avec précision dans la première place.
Que est une fonction JavaScript, n'est-ce pas? 🙂
L'approche que vous avez décrit est le seul moyen judicieux je pense de le faire en javascript. Comme pour PHP, tous, au final, il ne s'est rendu de texte. Il ne sait pas, ou de soins, sur la façon dont le texte est affiché par le client. Rappelez-vous littéralement n'importe quoi peut se connecter à votre serveur web et demande une page PHP, certains d'entre eux n'ont même pas un affichage graphique (googlebot, curl séances de, la ligne de mode les navigateurs et les lecteurs d'écran, etc)
PHP est serverside, il n'est donc pas possible de le faire de cette façon. Comme @GordonM dit.
Double Possible de Détecter le système de DPI/PPI JS/CSS?
Que est une fonction JavaScript, n'est-ce pas? 🙂
L'approche que vous avez décrit est le seul moyen judicieux je pense de le faire en javascript. Comme pour PHP, tous, au final, il ne s'est rendu de texte. Il ne sait pas, ou de soins, sur la façon dont le texte est affiché par le client. Rappelez-vous littéralement n'importe quoi peut se connecter à votre serveur web et demande une page PHP, certains d'entre eux n'ont même pas un affichage graphique (googlebot, curl séances de, la ligne de mode les navigateurs et les lecteurs d'écran, etc)
PHP est serverside, il n'est donc pas possible de le faire de cette façon. Comme @GordonM dit.
Double Possible de Détecter le système de DPI/PPI JS/CSS?
OriginalL'auteur Atara | 2012-02-15
Vous devez vous connecter pour publier un commentaire.
Ensuite, vous pouvez utiliser JQuery pour envoyer
dpi_x
etdpi_y
cela à votre serveurhttp://jsfiddle.net/sxfv3/
Oui, son à partir de votre lien. Je suppose qu'il n'existe pas de fonction javascript pour revenir DPI. Mais cette solution est également facile
Je pense que cette solution est la plus fiable.
Cela semble de retour de 96 ppp sur mon 1680x1050 15" à haute résolution de MacBook Pro, avec le dernier Safari et Firefox. Et aussi sur mon 2880x1800 (ou 1440x900 "points") 15" Retina MacBook Pro. Et mon 24" 1920x1200 écran externe.
Comme Pointu semble être désireux de stackoverflow.com/questions/14242125/... , les navigateurs actuels toujours revenir 96. J'espère cela va bientôt changer, mais comme de maintenant, c'est comment il est.
OriginalL'auteur Lixas
Dans webkit vous pouvez détecter si votre utilisateur dispose d'un soi-disant "haute résolution de l'écran" par simple récupération de la valeur de la fenêtre.devicePixelRatio.
Normal dpi écrans sera de retour 1.
L'iPhone 4 sera de retour de 2, mais de tels chiffres 1.8 ou 2.12 sont également possibles.
Pas parfait, mais une belle pointeur. Merci et +1 🙂
Un "normal" de l'écran de devicePixelRatio sera de retour 1 uniquement lorsque le niveau de zoom est réglée à 100%. Ce n'est donc pas un moyen précis de détecter si le moniteur en cours d'utilisation est d'une haute résolution (4k) de l'écran ou pas.
OriginalL'auteur laurens peeters
Il est, à ce jour, aucune norme et pris en charge partout, la solution.
window.devicePixelRatio
, comme suggéré par laurens peeters, fonctionne si vous n'avez pas de soins sur IE, ou tout autre navigateur à partir de l'antiquité, comme au début de janvier 2013 (par exemple, Firefox 17).Voir Croix-Navigateur Retina/Haute Résolution Des Requêtes De Média (et divers commentaires et des liens pour savoir comment obtenir cette information à partir de la fin 2012, mais vous aurez à garder à la recherche de nouveau, et le réglage de votre code, chaque tellement souvent, jusqu'à ce que quelque chose enfin est standardisé, et mis en œuvre dans tous les navigateurs, avec une généralisation assez version adoption que vous pouvez cesser de s'inquiéter sur les anciennes versions...
Vous pouvez obtenir des dpi hors de la rmr comme ceci: DPI = 96 * rmr. Dans les navigateurs (et uniquement dans les navigateurs), résolution de 96 est la rmr de 1. À un certain moment, quelqu'un a décidé (et le reste), que 96px est de 1 physique de pouce dans les navigateurs (ce qui est une bonne chose, aussi longtemps, que vous pouvez accéder à la rmr). Dans Windows 10, et d'un écran 4K, il retourne correctement rmr de 2.5. Je ai pensé, que correct rmr est également retourné pour écrans FullHD (cela dépend vraiment de la résolution de réglage de votre système d'exploitation, et non pas la résolution de votre écran)
OriginalL'auteur abarnert