


Wie zähle ich Schriftarten auf, die für die Rendering-Engine eines Webbrowsers mithilfe von JavaScript verfügbar sind?
Aufzählen von Schriftarten, die für die Rendering-Engine eines Webbrowsers verfügbar sind
Bei der Webentwicklung ist es oft wünschenswert, Benutzern ein anpassbares Browsing-Erlebnis zu bieten. Dazu kann gehören, dass sie aus einer Liste von Schriftarten, die der Browser rendern kann, eine Schriftart ihrer Wahl auswählen können. Um dies zu erleichtern, ist eine Möglichkeit erforderlich, programmgesteuert eine Liste aller verfügbaren Schriftarten abzurufen.
Ein Ansatz zur Lösung dieses Problems besteht darin, eine Liste von Schriftarten fest zu codieren oder von einem Server abzurufen. Dieser Ansatz kann jedoch umständlich sein und eignet sich möglicherweise nicht für Situationen, in denen der Browser vom Benutzer zusätzliche Schriftarten installiert hat.
Glücklicherweise gibt es eine elegantere und dynamischere Lösung mit JavaScript. Das folgende Snippet verwendet eine Technik, die als Schriftartenerkennung bekannt ist:
<code class="js">/** * JavaScript code to detect available availability of a * particular font in a browser using JavaScript and CSS. * * Author : Lalit Patel * Website: http://www.lalit.org/lab/javascript-css-font-detect/ * License: Apache Software License 2.0 * http://www.apache.org/licenses/LICENSE-2.0 * Version: 0.15 (21 Sep 2009) * Changed comparision font to default from sans-default-default, * as in FF3.0 font of child element didn't fallback * to parent element if the font is missing. * Version: 0.2 (04 Mar 2012) * Comparing font against all the 3 generic font families ie, * 'monospace', 'sans-serif' and 'sans'. If it doesn't match all 3 * then that font is 100% not available in the system * Version: 0.3 (24 Mar 2012) * Replaced sans with serif in the list of baseFonts */ /** * Usage: d = new Detector(); * d.detect('font name'); */ var Detector = function() { // a font will be compared against all the three default fonts. // and if it doesn't match all 3 then that font is not available. var baseFonts = ['monospace', 'sans-serif', 'serif']; //we use m or w because these two characters take up the maximum width. // And we use a LLi so that the same matching fonts can get separated var testString = "mmmmmmmmmmlli"; //we test using 72px font size, we may use any size. I guess larger the better. var testSize = '72px'; var h = document.getElementsByTagName("body")[0]; // create a SPAN in the document to get the width of the text we use to test var s = document.createElement("span"); s.style.fontSize = testSize; s.innerHTML = testString; var defaultWidth = {}; var defaultHeight = {}; for (var index in baseFonts) { //get the default width for the three base fonts 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); } function detect(font) { var detected = false; for (var index in baseFonts) { s.style.fontFamily = font + ',' + baseFonts[index]; // name of the font along with the base font for fallback. h.appendChild(s); var matched = (s.offsetWidth != defaultWidth[baseFonts[index]] || s.offsetHeight != defaultHeight[baseFonts[index]]); h.removeChild(s); detected = detected || matched; } return detected; } this.detect = detect; };</code>
Dieser Code erstellt ein „Detector“-Objekt mit einer „Detect“-Methode. Die Methode „detect“ verwendet einen Schriftartnamen als Argument und gibt einen booleschen Wert zurück, der angibt, ob die Schriftart für die Darstellung durch den Browser verfügbar ist.
Der Code erstellt ein Element und setzt seine Schriftfamilie auf die angegebene Schriftart. Dieses Element wird dann an den Dokumentkörper angehängt. Anschließend werden Breite und Höhe des Elements gemessen und mit den Standardwerten für die drei Schriftarten „Monospace“, „Sans-Serif“ und „Serif“ verglichen. Wenn die gemessenen Werte von den Standardwerten abweichen, bedeutet dies, dass die angegebene Schriftart verfügbar ist.
Um alle verfügbaren Schriftarten aufzuzählen, iterieren Sie einfach über ein Array von Schriftartennamen und rufen Sie die Methode „Erkennen“ für jede Schriftart auf . Das Ergebnis ist eine Liste aller Schriftarten, die der Browser darstellen kann.
Das obige ist der detaillierte Inhalt vonWie zähle ich Schriftarten auf, die für die Rendering-Engine eines Webbrowsers mithilfe von JavaScript verfügbar sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Versuchen wir, hier einen Begriff zu prägen: "Statischer Formanbieter". Sie bringen Ihre HTML

Zu Beginn eines neuen Projekts erfolgt die SASS -Zusammenstellung im Blinzeln eines Auges. Dies fühlt sich gut an, besonders wenn es mit Browsersync kombiniert ist, das nachlädt

In der Zusammenfassung der Plattformnachrichten in dieser Woche stellt Chrome ein neues Attribut für das Laden, Zugänglichkeitspezifikationen für Webentwickler und die BBC -Bewegungen ein

Ich schaue mir das HTML -Element zum ersten Mal an. Ich habe es für eine Weile dessen bewusst, aber Haven ' Es wurde es noch nicht für einen Dreh genommen. Es hat einige ziemlich cool und

Buy or Build ist eine klassische Technologiedebatte. Das Aufbau von Dingen selbst ist vielleicht billiger, weil Ihre Kreditkartenrechnung keine Werbebuchung gibt, aber

In der Roundup in dieser Woche, einem praktischen Lesezeichen für die Inspektion von Typografie, unter Verwendung dessen, wie sich JavaScript -Module gegenseitig importieren, sowie Facebook ' s.

Für eine Weile war iTunes der große Hund im Podcasting. Wenn Sie also "Abonnieren Sie Podcast" verlinkt haben, um zu mögen:

Es gibt eine Menge Analyseplattformen, mit denen Sie Besucher- und Nutzungsdaten auf Ihren Websites verfolgen können. Vielleicht vor allem Google Analytics, das weit verbreitet ist
