Шрифты и IE
Спецификация CSS позволяет задать список шрифтов в свойстве font-family. Для чего это сделано? Дело в том, что, до недавнего времени, было невозможно точно узнать, установлен ли данный шрифт у пользователя или нет. Поэтому и предоставлялся список шрифтов, в надежде, что хотя бы один из них установлен у пользователя.
Еще одной проблемой было соответствие набора символов (charset) шрифта настройкам пользователю. Так одна из установочных программ перезаписывала русский шрифт «Verdana», в котором присутствовали русские буквы, на английский шрифт, в котором этих букв не было. В результате, при попытке просмотра сайта, сверстанного шрифтом «Verdana», пользователь видел цепочки квадратиков.
В Internet Explorer'е версии 6.0 предусмотрен механизм, позволяющий, как получить полный список всех шрифтов, так и узнать набор символов (charset) конкретного шрифта. Для этого используются свойства и методы объекта Dialog Helper. Данный объект представляет собой объект ActiveX, устанавливаемый совместно с Internet Explorer. Для доступа к данному объекту необходимо объявить его в html-документе при помощи тега object. Например, так:
<object id=dlg width="0px" height="0px" classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b"> </object>
После того как экземпляр объекта Dialog Helper размещен в html-документе, можно обращаться к его методам и свойствам. С точки зрения получения информации по шрифтам, нас будут интересовать метод getCharset и коллекция fonts. Метод getCharset возвращает код набора символов (charset), предоставляемого данным шрифтом. Например, после выполнения следующего кода, в переменной font_code будет записан код набора символов шрифта «Verdana»:
<script language="jscript">
font_code = dlg.getCharset("Verdana");
</script>
Примечание: Соответствие кодов и наборов символов описано в Character Sets. По непонятным причинам, для операционных систем на семейства NT и семейства 9X, метод getCharset возвращает разные коды. Это необходимо учитывать при написании приложений, использующих данный метод.
Коллекция fonts содержит имена всех шрифтов, поддерживаемых операционной системой. В частности данная коллекция может использоваться для проверки на наличие того или иного шрифта. Например, после выполнение следующего кода, переменная is_verdana содержит true, если шрифт «Verdana» установлен и false в противном случае:
<script language="jscript">
function is_font(font_name)
{
var i;
for(i = 1; i <= dlg.fonts.count; i++)
if (dlg.fonts(i) == font_name)
return true;
return false;
}
is_verdana = is_font("Verdana");
</script>
Список шрифтов.
Так как у вас не установлен Internet Explorer версии 6.0 или более поздней, то скрипт не может получить и отобразить таблицу шрифтов, поддерживаемых вашим браузером.
