У меня есть текстовый редактор, который использует designMode
и <iframe>
. Я пытаюсь изменить шрифт на шрифт Google Web. Вот код JavaScript:
function rich(a,b,c) {
editor.execCommand("styleWithCSS",true,null);
editor.execCommand(a,b,c);
editor.focus();
}
HTML для шрифтов:
<select onchange="if (this.selectedIndex > 0) {rich('FontName',false,this.options[this.selectedIndex].text);}">
<option selected>Font</option>
<option>Arial</option>
<option>Times New Roman</option>
<option>Courier</option>
<option>Consolas</option>
<option>Calibri</option>
<option>Molle</option>
</select>
В файле <iframe>
меня есть следующее:
<link href='https://fonts.googleapis.com/css?family=Molle:400italic' rel='stylesheet' type='text/css'>
Я попытался использовать CSS для изменения текста в правильный шрифт:
span[style="font-family: Molle"] {
font-family: 'Molle', cursive;
}
Это не работает. Решение должно работать только в Google Chrome.
Как вы загружаете шрифт, загружается только курсивная версия. Поэтому шрифт будет отображаться только в том случае, если вы явно укажете курсив в стиле span.
font-family:'Molle',sans-serif; font-style:italic;
Кстати, вы можете вообще изменить HTML? Если это так, не используйте встроенный стиль, а затем попробуйте переопределить его с помощью таблицы стилей, используя атрибут style для селектора. Он не только выглядит уродливым и неоднородным, но он не будет работать, он ничего не сделает. Атрибут inline style имеет более высокую специфичность, чем таблица стилей.
Либо добавьте выше, как встроенный стиль для span, либо укажите класс span и используйте его в таблице стилей для его адресации.
<span>
создаются динамически, когда пользователь меняет шрифт.
<span style="font-family: Molle"></span>