imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование > Для профессионалов
Опции темы
Старый 02.08.2003, 17:16     # 1
Viroman
Guest
 
Сообщения: n/a

Javascript+Русский шрифт+Opera=каракули.

Кто сталкивался с этой проблемой. Во всех браузерах правильно отображается текст, который находится именно в самих яваскриптах. А в Опере сама страница отображается на русском правильно, стоит charset тэг с указанием на шрифт, а вот текст отображаемый самим яваскриптом на русском показывается как каракули. Народ как с этим бороться?
 
Старый 04.08.2003, 08:51     # 2
makkintosh
Guest
 
Сообщения: n/a

может прикол в том что сам ЭТОт текст кооторый в ява скриптах не в той кдеровке? и вообще ты не сказал какая опера. - это важно
 
Старый 05.08.2003, 23:19     # 3
Viroman
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">');
 
Старый 05.08.2003, 23:50     # 4
dr-evil
::VIP::
 
Аватар для dr-evil
 
Регистрация: 17.02.2002
Адрес: /home/dr-evil
Пол: Male
Сообщения: 2 212

dr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэй
ээээ
ты уверен что в теге стоит win1251 и текст win1251?
__________________
Сеть - это диагноз... а сисадмин - состояние души.
Питер! Все на сходку!!! | Обзоры порталов. Добавь свою любимую систему!
dr-evil вне форума  
Старый 05.08.2003, 23:54     # 5
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Opera 7.11 ... все работает нормально ...
RaZEr вне форума  
Старый 06.08.2003, 00:05     # 6
Viroman
Guest
 
Сообщения: n/a

2 dr-evil: Я ни в чём не уверен, лучше скажи как надо.
Вот такая строка стоит у меня в начале моего хтмл документа, а как надо?
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
 
Старый 06.08.2003, 00:22     # 7
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Да никак ненадо, если браузер написан нормально то, он сам определит кодировку ... у меня без мета-тегов сработало ...

PS: Да забей ты на эту Оперу ... жалкая поделка ...
RaZEr вне форума  
Старый 06.08.2003, 01:31     # 8
Viroman
Guest
 
Сообщения: n/a

Ура нашёл ошибку, извините чайника, вообще блин не ту страницу имел ввиду. Тут моя ошибка в том, что я вывел script
в отдельный файл и дал на него ссылку. Опера их по дефолту латинским шрифтом показывает, не хочет на русском, поставил весь скрипт в саму страницу, теперь нормально.
Вот как было
<script language=Javascript src="stroka.js" type=text/javascript></script>
Вот вопрос, нельзя ли заставить Оперу открывать внешние
скрипты также с определённым чарсетом.
 
Старый 18.08.2003, 09:39     # 9
water
Junior Member
 
Регистрация: 19.09.2002
Адрес: Russia
Сообщения: 107

water Путь к славе только начался
Цитата:
Тут моя ошибка в том, что я вывел script
в отдельный файл и дал на него ссылку. Опера их по дефолту латинским шрифтом показывает, не хочет на русском, поставил весь скрипт в саму страницу, теперь нормально.
Браузеры Netscape четвертой версии (по крайней мере до версии 4.76 включительно) страдают такой же болезнью. Стоит скрипт запихать в тело документа - все ОК. Кстати, еще заметил, что при открытии html'ок с локального диска - все нормально, а с Web-сервера - кодировка глючит.
__________________
/\/\/\
water вне форума  
Старый 18.08.2003, 23:37     # 10
Viroman
Guest
 
Сообщения: n/a

Как обнаружилось очень легко лечится
<SCRIPT language=JavaScript charset="windows-1251" type="text/javascript" src="script.js"></SCRIPT>
 


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 17:34.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.