Rumah >hujung hadapan web >tutorial css >Bagaimanakah JavaScript Boleh Mengesan Fon Tersedia untuk Pemilihan Fon Pengguna?

Bagaimanakah JavaScript Boleh Mengesan Fon Tersedia untuk Pemilihan Fon Pengguna?

Patricia Arquette
Patricia Arquetteasal
2024-11-27 10:49:12853semak imbas

How Can JavaScript Detect Available Fonts for User Font Selection?

Mengesan Fon Disokong untuk Penyesuaian Pengguna

Soalan:

Cara menggunakan JavaScript untuk mendapatkan pelayar Senarai semua fon yang boleh dipaparkan untuk menyediakan fungsi pemilihan fon kepada pengguna?

Jawapan:

Pustaka pengesanan fon JavaScript Lalit Patel: http://www.lalit.org/lab/javascript-css-font-detect

Kod:

/**
 * 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;
};

Cara ia Berfungsi:

Pustaka ini menganalisis perbezaan lebar dan ketinggian aksara antara fon berbeza Penampilan setiap aksara berbeza-beza fon, menghasilkan lebar dan ketinggian yang unik untuk rentetan ujian yang sama Dengan membandingkan fon calon dengan tiga fon asas, pustaka boleh menentukan sama ada fon calon tersedia dalam penyemak imbas.

Atas ialah kandungan terperinci Bagaimanakah JavaScript Boleh Mengesan Fon Tersedia untuk Pemilihan Fon Pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn