imho.ws |
![]() |
![]() |
![]() |
# 1 |
Guest
Сообщения: n/a
|
Javascript+Русский шрифт+Opera=каракули.
Кто сталкивался с этой проблемой. Во всех браузерах правильно отображается текст, который находится именно в самих яваскриптах. А в Опере сама страница отображается на русском правильно, стоит charset тэг с указанием на шрифт, а вот текст отображаемый самим яваскриптом на русском показывается как каракули. Народ как с этим бороться?
|
![]() |
# 3 |
Guest
Сообщения: n/a
|
Опера всегда самая последняя, что можно было на офф странице скачать 7.11, на русском. Скрипт выдаёт бегущую строку и больше ничего. Сам скрипт находится внутри страницы, которая также на русском. В самом начале соответственно страницы стоит чарсет, иначе опера страницу тоже неправильно отображает. Пишу одними и теми же буквами, так что тут даже ничего необычного. Под експлорером, под тем же нетскейпом всё порядок, под оперой страница на русском, а выдаваемая скриптом строка бегущая, как обычно каракули, будто бы не переставил чарсет.
Вот он сам скрипт var marqueewidth=450; var marqueeheight=15; var marqueespeed=1; var pauseit=1; var marqueecontent='<nobr><DIV CLASS="NEWS";>Приветствую вас на своей странице</A></DIV></nobr>'; marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) var copyspeed=marqueespeed var pausespeed=(pauseit==0)? copyspeed: 0 var iedom=document.all||document.getElementById if (iedom) document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+marqueecontent+'</span>') var actualwidth='' var cross_marquee, ns_marquee function populate(){ if (iedom){ cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee cross_marquee.style.left=parseInt(marqueewidth)+8+"px" cross_marquee.innerHTML=marqueecontent actualwidth=document.all? temp.offsetWidth : document.getElementById("temp").offsetWidth } else if (document.layers){ ns_marquee=document.ns_marquee.document.ns_marquee2 ns_marquee.left=parseInt(marqueewidth)+8 ns_marquee.document.write(marqueecontent) ns_marquee.document.close() actualwidth=ns_marquee.document.width } lefttime=setInterval("scrollmarquee()",20) } window.onload=populate function scrollmarquee(){ if (iedom){ if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8)) cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed+"px" else cross_marquee.style.left=parseInt(marqueewidth)+8+"px" } else if (document.layers){ if (ns_marquee.left>(actualwidth*(-1)+8)) ns_marquee.left-=copyspeed else ns_marquee.left=parseInt(marqueewidth)+8 } } if (iedom||document.layers){ with (document){ document.write('<link rel="stylesheet" type="text/css" href="http://moja.stranitsa/jscss.php">'); document.write('<table border="0" cellspacing="0" cellpadding="0"><td>') if (iedom){ write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight +';overflow:hidden">') write('<div style="position:absolute;width:'+marqueewidth+';height:'+marqueeheight +'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">') write('<div id="iemarquee" style="position:absolute;left:0px;top:0px"></div>') write('</div></div>') } else if (document.layers){ write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee">') write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>') write('</ilayer>') } document.write('</td></table></HTML>') } } /////////////////////////////////////////////// И содержание css должно располагаться в инете как указано http://moja.stranitsa/jscss.php иначе не хочет использоваться, если пытаешься с локалки грузить. BODY { BACKGROUND: url(back.gif) #f8f1d6; } .NEWS { font-size: 10px; font-weight: normal; font-family: Verdana,Arial,Helvetica; white-space: nowrap; color: #3333CC; } A.LINK { font-size: 10px; font-weight: normal; font-family: Verdana,Arial,Helvetica; text-decoration: none; color: #000000; } A.LINK:visited { font-size: 10px; font-weight: normal; font-family: Verdana,Arial,Helvetica; text-decoration: none; color: #000000; } A.LINK:hover { font-size: 10px; font-weight: normal; font-family: Verdana,Arial,Helvetica; text-decoration: underline; color: #DE0129; } ///////////////////////////////////// Вообщем я чайник и в таких делах не очень. Пытался добавить в скрипт вот такую строку, такой же чарсет, как в начале моей страницы, но не помогло. document.write('<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'); document.write('<link rel="stylesheet" type="text/css" href="http://moja.stranitsa/jscss.php">'); |
![]() |
# 4 |
::VIP::
Регистрация: 17.02.2002
Адрес: /home/dr-evil
Пол: Male
Сообщения: 2 212
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
ээээ
ты уверен что в теге стоит win1251 и текст win1251?
__________________
Сеть - это диагноз... а сисадмин - состояние души. Питер! Все на сходку!!! | Обзоры порталов. Добавь свою любимую систему! |
![]() |
![]() |
# 8 |
Guest
Сообщения: n/a
|
Ура нашёл ошибку, извините чайника, вообще блин не ту страницу имел ввиду. Тут моя ошибка в том, что я вывел script
в отдельный файл и дал на него ссылку. Опера их по дефолту латинским шрифтом показывает, не хочет на русском, поставил весь скрипт в саму страницу, теперь нормально. Вот как было <script language=Javascript src="stroka.js" type=text/javascript></script> Вот вопрос, нельзя ли заставить Оперу открывать внешние скрипты также с определённым чарсетом. |
![]() |
# 9 | |
Junior Member
Регистрация: 19.09.2002
Адрес: Russia
Сообщения: 107
![]() |
Цитата:
__________________
/\/\/\ |
|
![]() |