111 votes

liste de toutes les polices du navigateur d'un utilisateur peut afficher

Est-il un moyen en javascript pour obtenir les noms de toutes les polices (ou de la police des familles) que le navigateur peut afficher? (Je veux donner à l'utilisateur un menu déroulant avec une liste de toutes les polices disponibles, et permettent à l'utilisateur de choisir une police de caractères.) Je préfère ne pas avoir à coder en dur cette liste à l'avance ou de l'envoyer vers le bas à partir du serveur. (Intuitivement, il semble que le navigateur doit savoir ce que les polices qu'il a et ce doit être exposé à javascript en quelque sorte.)

77voto

Marko Points 26030

Oui, il y est! Je suis tellement content que vous posiez cette question, parce que je veux maintenant utiliser cette trop.

+1 pour la question, et voici votre réponse :)

http://www.lalit.org/lab/javascript-css-font-detect

38voto

alex Points 186293

La version JavaScript est un peu capricieux. Il obtient des polices en parcourant connu des polices et des essais.

La façon la plus précise (quoique d'avoir à utiliser une propriété plugin) est d' utiliser le Flash. Ici, vous pouvez obtenir la liste des polices de caractères sans avoir à les tester individuellement à l'aide de dimensions.

Vous allez avoir à décider si vous devez faire une liste exacte au détriment de ne pas fonctionner sur certains appareils ( iDevices, les navigateurs sans plugin Flash, etc), ou d'une liste partielle avec un meilleur support via JavaScript uniquement.

4voto

MPC Points 53
<SCRIPT>
    function getFonts()
    {
        var nFontLen = dlgHelper.fonts.count;
        var rgFonts = new Array();
        for ( var i = 1; i < nFontLen + 1; i++ )
            rgFonts[i] = dlgHelper.fonts(i); 

        rgFonts.sort();
        for ( var j = 0; j < nFontLen; j++ )
            document.write( rgFonts[j] + "<BR>" );
    }
</SCRIPT>

<BODY onload="getFonts()">
<OBJECT id=dlgHelper CLASSID="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" width="0px" height="0px">
</OBJECT>

3voto

Stoffe Points 135

Dans ma recherche pour cela, j'ai aussi trouvé Font.jsqui ajoute un objet de Police un peu comme l'Image, il est donc possible de vérifier si une police est réellement prêt à l'emploi. Fonctionne également sur installer les polices système. La baisse est IE9+ seulement en raison de besoin d' Object.defineProperty (les autres navigateurs), mais si vous faites du web moderne, cela semble être une option encore meilleure. (Je vais, hélas pour aller avec la réponse ci-dessus, upvoted et de passer pour l'instant. :))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X