The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Проблема со шрифтами в opera и konqueror"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"Проблема со шрифтами в opera и konqueror"  
Сообщение от Al email(??) on 11-Янв-08, 14:06 
Столкнулся с проблемой, суть в следующем: Есть некоторый документ, в котором прописаны некоторые стили, цвет шрифта, цвет, фона, сам шрифт(название итд), размер итд
С помощью javascript получаем значение каждого свойства через document.styleSheets.cssRules.stylе и его значение в дальнейшем. Проблема в том что например опера, вместо шрифта times new roman при запросе скрипта, выдаёт bitstream Vera Serif, а konqueror вообще не выдаёт ничего(для times new roman), т.е. font-family при запросе javascriptom пустой остаётся. В то же время например шрифт monospace нормально выдаётся при javascript запросе в любых браузерах, все остальные свойства(цвет, размер итд) нормально выдаются во всех браузерах(opera,netcape, konqueror)
Вопрос, почему opera меняет шрифты которых не знает? А точнее как с помощью javascript функций получить список шрифтов поддерживаемых браузером, и как сделать так чтобы например опера при "ненахождении шрифта у себя" не меняла его на хз что.
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Проблема со шрифтами в opera и konqueror"  
Сообщение от XAnder (ok) on 11-Янв-08, 15:04 
>Вопрос, почему opera меняет шрифты которых не знает? А точнее как с
>помощью javascript функций получить список шрифтов поддерживаемых браузером, и как сделать
>так чтобы например опера при "ненахождении шрифта у себя" не меняла
>его на хз что.

Про Оперу не знаю. Но есть мысль насчёт узнавания поддерживаемых шрифтов. Где-то видел весьма изящный способ проверки поддержки разных шрифтов браузером. Ссылку не помню, к сожалению, но суть там была в том, что некоторая строка простых символов (например "ABCDEFG", но лучше длиннее) выводится разными шрифтами. Сначала стандартными, потом всякими разными, которые нужно проверить. Примерно так:

<p style="font-family: serif">ABCDEFG</p>
<p style="font-family: sans-serif">ABCDEFG</p>
<p style="font-family: monospace">ABCDEFG</p>
<p style="font-family: MyFont1">ABCDEFG</p>
<p style="font-family: MyFont2">ABCDEFG</p>
...

Затем для каждого полученного абзаца смотрим ширину (вроде бы свойство offsetWidth, но могу и ошибаться). Если ширина абзаца со шрифтом MyFontN не совпадает с шириной никакого из трёх стандартных, то этот шрифт точно есть в браузере.

Развивая эту идею, можно добиться многих интересных результатов. Пробуйте.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Проблема со шрифтами в opera и konqueror"  
Сообщение от MasterWeb email(ok) on 05-Май-08, 23:37 
Тестировал Оперу 9.5, Мазил2 и Сафари3.

Code:
--------------------------------------------------------------------------------

<HTML>
<BODY></BODY>
<SCRIPT>
    s="1,2,3;4,5,6;8,9,0".replace(/;/g,"</TD></TR><TR><TD>").replace(/,/g,"</TD><TD>");
    document.body.innerHTML="<TABLE border=1><TR><TD>"+s+"</TD></TR><TABLE>";
</SCRIPT>
</HTML>

--------------------------------------------------------------------------------
Работает теперь во всех браузерах. (Раньше работал только в IE, начиная с версии 3.)

Code:
--------------------------------------------------------------------------------

<HTML>
<STYLE>
    P.Over{color:#FF0000;}
    P.Out{color:#00FF00;}
</STYLE>
<BODY>
    <P class=Out id=pID>Hello!</P>
</BODY>
<script>
    //var p=document.body.all["pID"];
    var p=document.body.all.pID;
    p.onmouseover=Over;
    p.onmouseout=Out;
    function Over(){this.className="Over"};
    function Out(){this.className="Out"};
</script>
</HTML>

--------------------------------------------------------------------------------
Работает тоько в IE(4 и моложе) и Опере9.5.

Это только примеры. Демонстрация. Я сравнивал возможности, которые предоставляет объектная модель браузеров. Детально сравнивал. Я сравнивал, по сути, эти браузеры с IE5.5. Ни Опера, ни, тем более, все остальные, даже близко к IE5.5 не подошли. А ведь сейчас мы имеем IE7.
Вывод: Браузеры Опера и все остальные отстали не на 10 лет от IE7, они отстали от него навсегда.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру