Chrome hüllt Schriftfamilien mehrere Wörter mit einfachen Anführungszeichen mit. Der in Chrome zurückgegebene Wert für font-family lautet also: 'Times New Roman'
, der nicht mit dem Wert in der Auswahlliste Times New Roman
übereinstimmt.
In Anbetracht all dieser Browservariationen denke ich, dass die beste Lösung darin besteht, die Familiennamen durch Kommas auseinander zu schneiden, das Anführungszeichen (falls vorhanden) um jeden Schriftartnamen zu trimmen und sie später zu verbinden. Verwenden Sie diesen bereinigten Wert in der Auswahlliste.
$('#selectable1 span').live('mousedown', function() {
var fontFamily = $(this).css('font-family');
var fonts = fontFamily.split(',');
var sanitizedFonts = $.map(fonts, function(name) {
// trim single quotes around font name (if any) for Chrome/Safari
// trim double quotes around font name (if any) for Firefox
return name.trim().replace(/^['"]|['"]$/g, '');
});
$('#family').val(sanitizedFonts.join(', '));
});
Siehe eine example. Die Auswahlliste mußte geändert werden, um dieses konsistente Namensschema für Werte zu folgen:
fontName[, fontName]
Dieses schwer beruht auf der Tatsache, dass ein font-Name wird nicht keine Kommas enthält, zitiert oder nicht notiert.
+1 Das sind einige interessante Sachen, die Sie mit HTML5 und CSS3 machen. – Anurag
Danke Anurag. Froh, dass du es bemerkt hast – Mircea