>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Как изменить кодировку новосозданного документа http://forum.mozilla-russia.org/viewtopic.php?id=10773 |
hasherfrog > 06-06-2006 13:51:34 |
Вопрос достаточно сложный. По умолчанию, кодировка страницы, созданной через javascript - UTF-8. Выделить код Код:javascript: (function(){ nW = window.open('','test','width=200,height=200'); nD=nW.document; nD.open(); nD.writeln('<?xml version="1.0" encoding="windows-1251"?>'); nD.writeln('<html><head><title>Test</title><base target=\'_blank\'>'); nD.writeln('<meta http-equiv="content-type" content="text/html; charset=windows-1251">'); nD.writeln('</head><script></script><body>'); nD.writeln('<p>ТЕКСТ</p>'); nD.writeln('</body></html>'); nD.close(); nW.focus(); /*nW.close();*/ } )() Когда документ создан, всё вроде бы нормально. Но если его теперь сохранить... Получим кракозябли. Если у созданного документ посмотреть кодировку - увидим... UTF-8. Если бы вопрос стоял о сохранении документа, я бы сменил кодировку в тексте "charset=" Задача такая: нужно явным образом указать нужную кодировку у созданного через javascript документа. Есть какие-нибудь мысли по поводу? |
ladserg > 06-06-2006 15:44:15 |
Может есть смысл генерит документ с помощью PHP? Есть ли возможность на странице со скриптом поставить кодировку CP1251? |
Unghost > 07-06-2006 00:55:41 |
==> Разработка |
Mash > 07-06-2006 07:49:37 |
Если интересует только лишь POST, то попробуйте поиграть атрибутом формы "accept-charset": http://www.w3.org/TR/html401/interact/forms.html#edef-FORM В противном случае для Fx можно пойти другим путём: Выделить код Код:<script> function show() { var doc = 'data:text/html;charset=windows-1251,<html><head><title>Test</title><base target="_blank"></head><script><'+'/script><body><p>ТЕКСТ</p></body></html>'; var nW = window.open(doc,'test','width=200,height=200'); nW.focus(); return false; } </script> <body><a onclick="return show()">click me</a></body> Подробнее здесь: http://en.wikipedia.org/wiki/Data:_URL Но проще всего, конечно же, отсылать на адрес статичной/динамичной страницы. |
hasherfrog > 07-06-2006 13:12:49 |
Mash |
hasherfrog > 07-06-2006 13:55:24 |
Значит, по пунктам, но задом-наперёд: 1) accept-charset сработал именно как мне было надо. Поскольку окно у меня создаётся временное, никаких сохранений я не планирую, а важно лишь правильно отправить данные, данный метод - то что нужно. *** В чём была заморочка? А вот-с :] Выделить код Код:javascript:(function(){var x=prompt('Search for','');if(x!=null){var doc='<html><head><title>Test</title><base target="_blank">';doc+='</head><script><'+'/script><body>';doc+='<form action="http://dic.academic.ru/searchall.php" method="post" name="searchform" accept-charset="windows-1251">';var chks=new Array("dic[lower]","dic[ushakov]","dic[enc1p]","dic[enc2p]","dic[enc3p]","dic[ogegova]","dic[brokgauz]","dic[muller]","dic[idioms]","dic[fin_enc]","dic[econ_dict]","dic[efin_dic]","dic[fin2]","dic[anticris]","dic[geolog]","dic[hist_dic]","dic[biograf]","onlythermin");for(var i=0;i<chks.length;i++){doc+='<input name="';doc+=chks[i];doc+='" checked="checked" type="checkbox">';}doc+='<input name="thermin" type="text" value="';doc+=x;doc+='">';doc+='<input name="sss" type="submit">';doc+='</body></html>';var nW=window.open('','hash','width=200,height=100');var nD=nW.document;nD.open('text/html');nD.writeln(doc);nD.close();nW.focus();nD.searchform.submit();nW.close();}})() Данный букмарклет ищет нужное слово в словарях и онлайн-энциклопедиях на dic.academic.ru. |