Chrome объединяет семейства шрифтов, состоящие из нескольких слов, в одинарные кавычки. Таким образом, значение для семейства шрифтов, возвращаемое в Chrome: 'Times New Roman'
, что не соответствует значению в списке выбора Times New Roman
.
Учитывая все эти варианты браузера, я думаю, что лучшее решение - это разделить имена семейств запятыми, обрезать одинарные кавычки (если они есть) вокруг каждого имени шрифта и присоединить их позже. Используйте это очищенное значение внутри списка выбора.
$('#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(', '));
});
См. пример . Список выбора должен был быть изменен, чтобы следовать этой последовательной схеме именования для значений:
fontName[, fontName]
Это в значительной степени зависит от того факта, что имя шрифта не будет содержать запятые, заключенные в кавычки или без кавычек.