Heim > Web-Frontend > CSS-Tutorial > Wie kann JavaScript verfügbare Schriftarten für die Benutzerschriftauswahl erkennen?

Wie kann JavaScript verfügbare Schriftarten für die Benutzerschriftauswahl erkennen?

Patricia Arquette
Freigeben: 2024-11-27 10:49:12
Original
868 Leute haben es durchsucht

How Can JavaScript Detect Available Fonts for User Font Selection?

Erkennung unterstützter Schriftarten für die Benutzeranpassung

Frage:

Wie verwende ich JavaScript, um Folgendes zu erhalten Der Browser Eine Liste aller Schriftarten, die angezeigt werden können, um dem Benutzer Funktionen zur Schriftartenauswahl zu bieten?

Antwort:

Lalit Patels JavaScript-Schrifterkennungsbibliothek: http://www.lalit.org/lab/javascript-css-font-detect

Code:

/**
 * Detector JavaScript code to identify available fonts in a browser.
 */
var Detector = function() {
    // Base fonts for comparison against candidate fonts
    var baseFonts = ['monospace', 'sans-serif', 'serif'];

    // Test string with characters of varying widths and heights
    var testString = "mmmmmmmmmmlli";

    // Test font size
    var testSize = '72px';

    // Append a SPAN element to the body for font width measurement
    var s = document.createElement("span");
    s.style.fontSize = testSize;
    s.innerHTML = testString;

    var defaultWidth = {}, defaultHeight = {};

    // Calculate default widths for base fonts
    for (var index in baseFonts) {
        s.style.fontFamily = baseFonts[index];
        document.body.appendChild(s);
        defaultWidth[baseFonts[index]] = s.offsetWidth;
        defaultHeight[baseFonts[index]] = s.offsetHeight;
        document.body.removeChild(s);
    }

    function detect(font) {
        var detected = false;

        // Compare candidate font's width and height against base fonts
        for (var index in baseFonts) {
            s.style.fontFamily = font + ',' + baseFonts[index]; // Fallback to base font
            document.body.appendChild(s);
            var matched = (s.offsetWidth != defaultWidth[baseFonts[index]] || s.offsetHeight != defaultHeight[baseFonts[index]]);
            document.body.removeChild(s);
            detected = detected || matched;
        }

        return detected;
    }

    this.detect = detect;
};
Nach dem Login kopieren

Wie es funktioniert:

Diese Bibliothek analysiert die Unterschiede in der Zeichenbreite und -höhe zwischen verschiedenen Schriftarten. Das Erscheinungsbild jedes Zeichens variiert Schriftarten, was zu eindeutigen Breiten und Höhen für dieselbe Testzeichenfolge führt. Durch den Vergleich einer Kandidatenschriftart mit drei Basisschriftarten kann die Bibliothek feststellen, ob die Kandidatenschriftart im Browser verfügbar ist.

Das obige ist der detaillierte Inhalt vonWie kann JavaScript verfügbare Schriftarten für die Benutzerschriftauswahl erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage