Heim >Web-Frontend >CSS-Tutorial >Kann JavaScript alle Schriftarten erkennen, die der Browser eines Benutzers anzeigen kann?

Kann JavaScript alle Schriftarten erkennen, die der Browser eines Benutzers anzeigen kann?

DDD
DDDOriginal
2024-11-30 21:46:13381Durchsuche

Can JavaScript Detect All Fonts a User's Browser Can Display?

Jede Schriftart auflisten, die der Browser eines Benutzers anzeigen kann

Kann JavaScript im Browser anzeigbare Schriftarten abrufen?

Ja, es ist möglich, mithilfe von JavaScript eine Liste aller vom Browser des Benutzers unterstützten Schriftarten zu erhalten. Dies ermöglicht die Erstellung eines Dropdown-Menüs mit verfügbaren Schriftarten für die Benutzerauswahl.

Implementierung der Schriftartenerkennung

Siehe http://www.lalit.org/lab/javascript -css-font-detect für eine effiziente JavaScript-Lösung:

Code Snippet:

var Detector = function() {
    // baseFonts
    var baseFonts = ['monospace', 'sans-serif', 'serif'];

    // testString
    var testString = "mmmmmmmmmmlli";

    // testSize
    var testSize = '72px';

    // helper functions
    var h = document.getElementsByTagName("body")[0];
    var s = document.createElement("span");
    s.style.fontSize = testSize;
    s.innerHTML = testString;

    // default measurements
    var defaultWidth = {};
    var defaultHeight = {};
    for (var index in baseFonts) {
        s.style.fontFamily = baseFonts[index];
        h.appendChild(s);
        defaultWidth[baseFonts[index]] = s.offsetWidth; //width for the default font
        defaultHeight[baseFonts[index]] = s.offsetHeight; //height for the defualt font
        h.removeChild(s);
    }

    this.detect = function(font) {
        var detected = false;
        for (var index in baseFonts) {
            s.style.fontFamily = font + ',' + baseFonts[index];
            h.appendChild(s);
            var matched = (s.offsetWidth != defaultWidth[baseFonts[index]] || s.offsetHeight != defaultHeight[baseFonts[index]]);
            h.removeChild(s);
            detected = detected || matched;
        }
        return detected;
    };
};

Funktionsprinzip

Dieser Code nutzt das einzigartige Erscheinungsbild von Zeichen in verschiedenen Schriftarten. Durch den Vergleich der Breite und Höhe des in einer bestimmten Schriftart gerenderten Texts mit denen in Basisschriftarten wird ermittelt, ob die Zielschriftart unterstützt wird.

Das obige ist der detaillierte Inhalt vonKann JavaScript alle Schriftarten erkennen, die der Browser eines Benutzers anzeigen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn