JavaScript+Netscape+Cyrilic!!!

12 отговора 397 прегледа
#1

JavaScript+Netscape+Cyrilic!!!

Ot izvestno vreme me mychi edin problem s Netscape4.7, koito napravo mi vzima zdraveto. Okazva se, ce kogato generiram dinamicno s JavaScript nqkakva elementarna strnicka (ako shtete i menu) v koeto ima neshto na kirilica bukvite na BG izlizat kato "?????". Ako zaredq stranitza v koqto ima neshto takova:
\<Script\>
document.write("Нещо на Кирилица");
\<\/Script\>
//tuk poveceto chertichki kakto razbirate gi slagam zaradi zabraneniq HTML :-((
vsichko e nared, no ako go generiram da rechem ot drug frame:

ContentFrame.document.write("...."); pak izlizat ??????

probvah s layer.load("file.htm",width);
Togava se poluchi, no kato generirah absolutno syshtata stranitza sys JavaScript ne se poluchi :-((

Ne, ce ne moga da nabutam document.write() na syotvetnite mesta, no e dosta po-neudobno, a i me glojdi vyprosyt zashto stava taka. Ako nqkoi znae otgovora shte mu byda bezkraino blagodaren!
A, i oshte neshto. Pri Netscape 6 go nqma tozi problem, estestveno pri IE5.0 syshto!


Отговор
в отговор на Alien #2

Re: JavaScript+Netscape+Cyrilic!!!

На Netscape не се оправя с енкодинга. Аз този проблем не мога да реша от 3 години ;((( Опитвал съм какво ли не.

С JavaScript ако се опиташ да съзададеш документ в движение, в който има кирилица си обречен на ????????. Явно когато с JavaSript-a генерираш документ той си избира стандартния енкодинг, аз поне друго обяснение не намерих.

Аз лично не съм открил начин за решаването на този проблем ;(((

...
Отговор
в отговор на Цвeтaн Цвeтkoв #3

Re: JavaScript+Netscape+Cyrilic!!!

Ami ima qvno neshto takova no se chudq kak sa napraveni nqkoi skriptove za menuta koito si rabotqt po Netscape?!?!! Opitah se da porazgledam kak e napraveno naprimer na saita [линк] no tam koda e prostu ujasno slojno napisan i nishto ne razbrah ot pyrvo chetene :-(( Predpolagam ce i ot vtoro i treto pak nqma da stane :-(
A dali nqma nqkakyv nachin prez JavaScript da se kontrolira encodinga ... tova mai e po-dobre da go pusna za obsyjdane v nqkoi forum na saitovete na Netscape.

Отговор
в отговор на Alien #4

Re: JavaScript+Netscape+Cyrilic!!!

Ако има начин наистина ще може да се оправи, но до колкото познавам JavaScript нама такъв начин. Ако научиш нещо свиркай :)

...
Отговор
в отговор на Цвeтaн Цвeтkoв #5

какъв е проблема с това?


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body>
<script>
var foo="Кирилица ли е това?";
var bar=escape(foo);
function cyr() {
document.write(foo + '<BR>');
document.write(unescape(bar));
}
cyr();

</script>


</body>
</html>


bofh
Отговор
в отговор на bofh #6

А на цска

[линк]

bofh
Отговор
в отговор на bofh #7

Re: какъв е проблема с това?

така няма проблем, но пробвай да генериш съдържанието на някой друг frame :)

...
Отговор
в отговор на Цвeтaн Цвeтkoв #8

Re: какъв е проблема с това?

A ako se generira tagut <meta charset ...> ? Pak li ne stava? Spored men bi trjabvalo da stane.

Поискай си, за да ти бъде дадено !!!
Отговор
в отговор на Borg #9

Re: какъв е проблема с това?

ne stava i taka

Отговор
в отговор на Цвeтaн Цвeтkoв #10

ето


това е menu.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
</head>

<body>
<script>
function writer() {
var IE =(document.all)?true:false;
var NS =(document.layers)?true:false;
var content = 'Кирилица';

if (IE)
{
top.main.document.all['cyr'].innerHTML=content ;
}
if (NS)
{

top.main.document.layers['cyr'].document.open();
top.main.document.layers['cyr'].document.write(content);
top.main.document.layers['cyr'].document.close();

}
}

</script>

<a href="#" onclick="writer()">Test</a>
</body>
</html>

това е main.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body>
<div id="cyr" style="position:absolute;top:10;left:10;height:100;width:300;z-index:1;">

</div>

</body>
</html>

това е index.html

<frameset rows="*,21" border="0" framespacing="0" frameborder="0">
<frame src="main.html" name="main" frameborder="No" scrolling="No" noresize marginwidth="0" marginheight="0">
<frame src="menu.html" name="menu" frameborder="No" scrolling="No" noresize marginwidth="0" marginheight="0">
</frameset>

Общо взето проблема е, че като пишеш с document.write
затриваш предишното съдържание на страницата,
т.е и meta tag-а за енкодинга. Или трябва да ползваш div
или да пишеш енкодинга заедно с html таговете etc.

Всичко най

bofh
Отговор
в отговор на bofh #11

Re: какъв е проблема с това?

Tva raboti, ama samo v tozi si vid...

ako probvash da slojish primerno
var foo='<FONT face="Arial, sans-serif">Кирилица</font>'

ne vlaa...

nekvi idei
sashto ne stava ako se probvam da predam texta kato parametar na funkcia...

Just a genius[email protected]
[линк]
Отговор
в отговор на Blake #12

Re: какъв е проблема с това?

foo=escape(foo)

function bar(foo)
{
var tmp = unescape(foo);
document.write(tmp);
...
}

bofh
Отговор
в отговор на bofh #13

Re: какъв е проблема с това?

da de da...
taka stava...

mislia che otkrih palnata zakonomernost...
znachi ako ne izpolzvash stilove, fontove, etc, e dostatachno da si slojish v dokumenta charset win-1251... ako obache slojish neshto takova po neznaijni prichini pak izliza kofti (ne e s ???????, ami s drugi bokluci)
spasenieto ti e da si setnal na NC4 character set-a da e 'windows-1251', i osven tova da si mu kazal sled tova 'set default character set'. Samo s prosto setvane na 'win-1251' ne stava...

rezultata - [линк] (sekciata na bulgarski)

Just a genius[email protected]
[линк]
Отговор