tutorials.de Buch-Aktion 05/2012
RSS-Feed anzeigen

it's tobee taylor

Hat mein Besucher Schriftart XY installiert?

Bewerten
von tobee am 22.05.10 um 17:27 (1767 Hits)
Bei meinem aktuellen Wordpress-Projekt wurde ich mit der Aufgabe konfrontiert, zu prüfen ob der Webseiten-Besucher die gewünschte Schriftart, in meinem Fall Rockwell, installiert hat. Mein Lösungsansatz ist eine Javascript Funktion, die die Breite jedes Buchstaben und jeder Zahl berechnet und daraus eine Prüfsumme generiert.

Der Besucher meiner Webseite generiert ebenfalls eine Prüfsumme, die dann mit der Original-Prüfsumme verglichen wird. Ich kann leider keine Garantie geben, dass mein Lösungsansatz mit jeder Schriftart funktioniert.
Erklärung und Quellcode zum Downloaden

"Hat mein Besucher Schriftart XY installiert?" bei Twitter speichern "Hat mein Besucher Schriftart XY installiert?" bei Facebook speichern

Aktualisiert: 23.05.10 um 16:43 von tobee

Kategorien
Kategorielos

Kommentare

  1. Avatar von Sven Mintel
    Interessant.
    Wie sieht es mit der Trefferquote aus, hast du da schon eine Statistik?
  2. Avatar von tobee
    Ich werde nächste Woche die Liste der Schriften erweitern.
    Ich halte dich / euch auf dem Laufenden.
    Spätestens nächsten Sonntag gibt es ein Update.
  3. Avatar von OnlyFoo
    Warum überprüfen ob jemand Schriftart xyz installiert hat?
    http://ajaxian.com/archives/2010-web...d-ready-to-use
    Einfach Schriftart einbinden und fertig!
  4. Avatar von tobee
    So, hier das versprochene Update.
    Ich habe eine kleine Testumgebung aufgesetzt: http://labs.grolba.com/fonts/
    Über Feedback würde ich mich freuen

    @OnlyFoo: Leider werden da nur OpenSource Fonts unterstützt.
    Ich möchte auf dauer eine anonyme Statistik erstellen, wie viele eine bestimmte Schriftart installiert haben.
  5. Avatar von Sven Mintel
    Das funktioniert prima, bei mir wurde alles korrekt erkannt
  6. Avatar von tobee
    @Sven:
    Wunderbar. Dann werde ich mal das Skript aufräumen und es euch auf GitHub zum Download anbieten.
    Hattest du auch "Font-Tests" mit dem Formular hinzugefügt?
  7. Avatar von Sven Mintel
    Zitat Zitat von tobee
    Hattest du auch "Font-Tests" mit dem Formular hinzugefügt?
    Hab ich jetzt eben mal gemacht...was passiert da?
  8. Avatar von tobee
    Er nimmt dein "Input" als Font-Family und überprüft ob die Schriftart angezeigt wird oder auf die Default Font zurückspringt:
    Etwa so in der Art:
    Code javascript:
    1
    2
    3
    
    var font = $(this).find('#fontFamily').val();
    var checksum = Grolba.Font.getChecksum(font);
    var defaultFont = ( checksum === Grolba.Font.fonts['Times New Roman'] );
    Hat es denn funktioniert?
  9. Avatar von Sven Mintel
    Zitat Zitat von tobee
    Er nimmt dein "Input" als Font-Family und überprüft ob die Schriftart angezeigt wird oder auf die Default Font zurückspringt:
    Etwa so in der Art:
    Code javascript:
    1
    2
    3
    
    var font = $(this).find('#fontFamily').val();
    var checksum = Grolba.Font.getChecksum(font);
    var defaultFont = ( checksum === Grolba.Font.fonts['Times New Roman'] );
    Hat es denn funktioniert?
    Nö, er zeigt mir auch bei irgendwelchen Fantasie-Namen einen Checksumme an und vermeldet "Ja"
  10. Avatar von tobee
    Welchen Browser benutzt du?
    Könntest du mir freundlicherweise einen Screenshot senden?
  11. Avatar von Sven Mintel
    Ich habs mit dem aktuellen FF gemacht:

  12. Avatar von tobee
    Es sieht so aus als würde die Schrift in Verdana darstellt werden.
    Kannst du mir noch die Checksum schicken.
    Dann bin ich glücklich und halte ich auf dem Laufenden sobald ich den Bug fixen konnte
    Danke
  13. Avatar von Sven Mintel
    Die Checksumme:
    Code :
    1
    
    500:a:276;500:......
    Der Font dürfte "Lucida Sans Unicode" sein, hab ich als Standard im FF eingestellt.
  14. Avatar von tobee
    Okay, dann hab ich die Wurzel allen Übels. Mein Skript denkt das Times New Roman die Standard-Schrift ist.
    Ich werde mein Skript in den nächsten Tagen anpassen, so dass es das erkennt.
    Danke, für deine Mithilfe.
  15. Avatar von Sven Mintel
    Ok, ich nehm mal die Checksumme wieder raus, ist ja doch recht breit hier damit