|
Страница 1 из 1 [ Сообщений: 10 ] |
Автор |
Сообщение |
ed1313
новый человек
|
|
Народ, помогите справиться с проблемой... Есть форма в отдельном окошке, которая рисуется джаваскриптом, через метод open с помощью метода write... Данные из этой формы отправляются е-мылом клиента, через ACTION="mailto:"… Аттрибут ENCTYPE="text/plain" установлен... При этом русский текст перекодируется аж два раза сначала WIN->DOS, затем WIN->ISO и приходит, само собой, абсолютно искореженным... Если отправлять из точно такой же формы, но загруженной в браузер не через скрипт (скопировав код из окна и сохранив его), то ничего подобного не происходит... Объясните, где копать и как победить этот баг?
|
|
 |
|
 |
ed1313
новый человек
|
|
Этот-то тег в открываемом окошке как раз имеется... В заголовке... Или его нужно внутри формы ставить?
|
|
 |
|
 |
ed1313
новый человек
|
|
Нет проблем... Вот код: ===========Начали код============= <html> <head> <title>Построение окна</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <script language="JavaScript"> function browse(field1,field2,field3,field4) { // Создаем новое окно 600х300 без панелей навигации var outputwin=open('','Blank','toolbar=0, width=600,height=500'); var trigger=field4 // Объявляем переменные with (outputwin.document) { // Создаем заголовок нового документа write("<"); write("html"); write(">"); write("<"); write("head"); writeln(">"); write("<"); write("title>Бланк заказа<"); writeln("/title>"); write('<meta http-equiv="Content-Type'); write('" content='); write('"text/html; charset=Windows-1251'); writeln('">'); writeln('<SCRIPT LANGUAGE="JavaScript">'); writeln('function clear_field(field) {'); ==============Откусил============== //Сама функция обрезана, она рояли не играет ==============Продолжение========== write(' <'); write("/SCRIPT>"); write(' <link rel="'); write('stylesheet" '); write('href="../Table1.css'); write('" type='); write('"text/css'); writeln('">'); writeln(' <script language="JavaScript">'); writeln(' function MM_reloadPage(init) { '); write(' if (init==true) with (navigator) {if ((appName=="Netscape'); writeln('")&&(parseInt(appVersion)==4)) {'); writeln(' document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}'); writeln(' else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); }'); writeln(' MM_reloadPage(true);'); write(" <"); writeln("/script>"); write("<"); write("/"); write("head"); writeln(">"); write("<"); write("body "); write('bgcolor="gainsboro">'); write('<'); writeln('table border="1" width="549" cellspacing="2" cellpadding="2" name="table1">'); write('<'); write('tr> <'); write('td align="center" class="Table1" valign="top"><'); write('font size="+2">Раздел: "'); write(field3); writeln('"</font></td> </tr>'); write('<'); write('tr> <'); write('td align="center" class="Table1" valign="top"><'); write('font size="+1"> Бланк заказа программы '); write(field1); writeln('</font></td> </tr>'); write('<'); write('tr> <'); write('td align="center" class="Table1" valign="top"> <'); write('br> <'); writeln('br>'); write('<'); write('FORM NAME="jsform" METHOD="post" ENCTYPE="text/plain" ACTION="mailto:telerus@mail.ru?subject=Заказ на передачу" onSubmit="return validate_form('); write(')"'); write('> <'); writeln('p>'); write('<'); write('INPUT NAME="delivery" TYPE="hidden" VALUE='); write(field1); writeln('>'); write('<'); write('INPUT NAME="name" TYPE="text" VALUE="Ваше имя" SIZE="30" onFocus="clear_field('); write('this)" onBlur="check_field('); write('this)"> <'); writeln('/p> '); write('<'); write('p> <'); write('INPUT NAME="email" TYPE="text" VALUE="Введите ваш e-mail адрес" SIZE="30" onFocus="clear_field(');write('this)" onBlur="check_field('); write('this)"> <'); writeln('/p>'); write('<'); write('p> <'); write('input type="text" name="adress" value="Введите почтовый адрес" size="50" onFocus="clear_field('); write('this)" onBlur="check_field('); write('this)"> <'); writeln('/p>'); if (trigger=="0" ) { write('<'); write('p>Отсылать: <'); writeln('select name="period">'); write('<'); write('option value="week" selected>по умолчанию<'); writeln('/option>'); write('<'); write('option value="month">ежемесячно<'); write('/option> <'); write('/select> <'); writeln('/p>') } write('<'); write('p>Подписка на: <'); writeln('select name="number" >'); write('<'); write('option value="1" selected>1 мес.<'); writeln('/option>'); write('<'); write('option value="2">3 мес.<'); writeln('/option>'); write('<'); write('option value="3">6 мес.<'); writeln('/option>'); write('<'); write('option value="4">12 мес.<'); write('/option>'); write('</select'); write('> <'); writeln('/p>'); write('<'); write('p> <'); write('input type="text" name="taxe" value="$$" size="45" onFocus="taxe_field('); write(')" onBlur="taxe_field('); write(')" onSelect="taxe_field('); write(')"> <'); writeln('/p>'); write('<'); write('p> <'); write('input type="button" name="Submit2" value="Рассчитать стоимость подписки" onClick="taxe_field('); write(')"> <'); writeln('/p>'); write('<'); write('p> <'); writeln('INPUT TYPE="submit" VALUE="Отправить">'); write('<'); writeln('INPUT TYPE="reset" VALUE="Очистить">'); write('<'); write('input type="button" name="Submit" value="Вернуться" onClick=window.close('); write(')> <'); writeln('/p>'); write('<'); write('p> <'); write('/p> <'); writeln('/FORM>'); write('<'); write('/td> <'); write('/tr> <'); writeln('/table>'); writeln('</div>'); writeln('</BODY>'); write('</'); write('HTML'); writeln('>'); ================Закончили код============= Если повырезать все "write" и запустить код - все работает как положено, кодировки не корежатся...
|
|
 |
|
 |
ed1313
новый человек
|
|
Ок... Да простит меня модератор... ===========Начали код=============== <html> <head> <title>Построение окна</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <script language="JavaScript"> function browse(field1,field2,field3) { // Создаем новое окно 600х300 без панелей навигации var outputwin=open('','Blank','toolbar=0, width=600,height=400'); // Объявляем переменные with (outputwin.document) { // Создаем заголовок нового документа write("<"); write("html"); write(">"); write("<"); write("head"); writeln(">"); write("<"); write("title>Бланк заказа<"); writeln("/title>"); write('<meta http-equiv="Content-Type'); write('" content='); write('"text/html; charset=windows-1251'); writeln('">'); writeln('<SCRIPT LANGUAGE="JavaScript">'); writeln('function clear_field(field) {'); writeln('if (field.value==field.defaultValue) {'); write("field.value='"); writeln("' } }"); writeln(' function taxe_field() {'); write('var num1= Number (document.jsform.number.value) + Number ("'); write(field2); writeln('")'); writeln(' switch (num1) {'); writeln('case 1: document.jsform.taxe.value="6,5 $ + 15$ отправка = 21,5$"; break; '); writeln('case 2: document.jsform.taxe.value="6,5 $ * 3 + 15$ *3 отправки - 5% = 61,28$"; break; '); writeln('case 3: document.jsform.taxe.value="6,5 $ *6 + 15$ *6 отправок - 10% = 116,1$"; break; '); writeln('case 4: document.jsform.taxe.value="6,5 $ *12 + 15*12 отправок -15% = 219,3$"; break; '); writeln('case 5: document.jsform.taxe.value="7 $ + 15$ отправка = 22$"; break; '); writeln('case 6: document.jsform.taxe.value="7 $ * 3 + 15$ *3 отправки - 5% = 62,7$"; break;'); writeln('case 7: document.jsform.taxe.value="7 $ *6 + 15$ *6 отправок - 10% = 118,8$"; break;'); writeln('case 8: document.jsform.taxe.value="7 $ *12 + 15*12 отправок -15% = 224,4$"; break;'); writeln('case 9: document.jsform.taxe.value="9,5 $ + 15$ отправка = 24,5$"; break; '); writeln('case 10: document.jsform.taxe.value="9,5 $ * 3 + 15$ *3 отправки - 5% = 69,83$"; break; '); writeln('case 11: document.jsform.taxe.value="9,5 $ *6 + 15$ *6 отправок - 10% = 132,3$"; break; '); writeln('case 12: document.jsform.taxe.value="9,5 $ *12 + 15*12 отправок -15% = 249,9$"; break; '); writeln('case 13: document.jsform.taxe.value="12 $ + 15$ отправка = 27$"; break;'); writeln('case 14: document.jsform.taxe.value="12 $ * 3 + 15$ *3 отправки - 5% = 78,75$"; break;'); writeln('case 15: document.jsform.taxe.value="12 $ *6 + 15$ *6 отправок - 10% = 145,8$"; break;'); writeln('case 16: document.jsform.taxe.value="12 $ *12 + 15*12 отправок -15% = 275,4$"; break;'); writeln('case 17: document.jsform.taxe.value="Пока нету"; break;'); writeln('case 18: document.jsform.taxe.value="Пока нету"; break;'); writeln('case 19: document.jsform.taxe.value="Пока нету"; break; '); writeln('case 20: document.jsform.taxe.value="Пока нету"; break; '); writeln(' case 21: document.jsform.taxe.value="Пока нету"; break;'); writeln('case 22: document.jsform.taxe.value="Пока нету"; break;'); writeln('case 23: document.jsform.taxe.value="Пока нету"; break; '); writeln('case 24: document.jsform.taxe.value="Пока нету"; break; }'); writeln(' }'); writeln(' function check_field(field) {'); write(" if (field.value=="); write("'"); write("'"); write("|| field.value=="); write("' "); writeln("') {"); writeln('field.value=field.defaultValue } '); writeln('} '); writeln('function validate_form() { '); write(' if (document.jsform.name.value==document.jsform.name.defaultValue || document.jsform.name.value.indexOf('); write("' "); writeln("',0)==0) {"); write(' alert("'); writeln('Вы не ввели имя.")'); writeln(' document.jsform.name.select()'); writeln(' document.jsform.name.focus()'); writeln('return false } '); writeln(' if (document.jsform.email.value==document.jsform.email.defaultValue) {'); write(' alert("'); writeln('Вы не ввели адрес электронной почты.")'); writeln(' document.jsform.email.select()'); writeln(' document.jsform.email.focus()'); writeln(' return false }'); writeln(' if (document.jsform.adress.value==document.jsform.adress.defaultValue) {'); write(' alert("'); writeln('Вы не ввели почтовый адрес.")'); writeln(' document.jsform.adress.select()'); writeln(' document.jsform.adress.focus() '); writeln('return false } '); write(' if (document.jsform.email.value.indexOf('); write("'@"); write("',0)==-1 || document.jsform.email.value.indexOf("); write("'."); writeln("',0)==-1) {"); write(' alert("'); writeln('Такого адреса нет.")'); writeln(' document.jsform.email.select()'); writeln(' document.jsform.email.focus()'); writeln(' return false }'); writeln(' else {'); write(' if(confirm("'); writeln('Нажмите OK, чтобы отослать почту.")) {'); writeln(' return true }'); writeln(' else {'); writeln(' return false } } } '); write(' <'); write("/SCRIPT>"); write(' <link rel="'); write('stylesheet" '); write('href="../Table1.css'); write('" type='); write('"text/css'); writeln('">'); writeln(' <script language="JavaScript">'); writeln(' function MM_reloadPage(init) { '); write(' if (init==true) with (navigator) {if ((appName=="Netscape'); writeln('")&&(parseInt(appVersion)==4)) {'); writeln(' document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}'); writeln(' else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); }'); writeln(' MM_reloadPage(true);'); write(" <"); writeln("/script>"); write("<"); write("/"); write("head"); writeln(">"); write("<"); write("body "); write('bgcolor="'); write('#CCCCCC"'); writeln('>'); write('<'); write('div '); write('align="'); write('center"'); writeln('>'); write('<'); write('table border="'); write('1" cellspacing='); write('"2'); write('" cellpadding='); write('"2'); writeln('">'); write('<tr'); write('> <td align="'); write('center" class='); write('"Table1'); write('" valign='); write('"top'); write('" nowrap> <'); write('font size="+2'); write('">Раздел: "'); write(field3); write('"<'); write('/font><'); writeln('br>'); write('<font size="+1'); write('">Бланк заказа программы <'); write('font size="+1'); write('">'); write(field1); write('<'); write('/font><'); write('/font><br'); writeln('>'); write(' <FORM NAME="'); write('jsform" METHOD='); write('"post'); write('" ENCTYPE='); write('"text/plain'); write('" ACTION='); write('"mailto:telerus@mail.ru?subject=Заказ на передачу'); write('" onSubmit='); write('"return validate_form()'); write('"><'); writeln('p>'); write('<INPUT NAME="delivery'); write('" TYPE='); write('"hidden'); write('" VALUE='); write(field1); writeln('>'); write(' <INPUT NAME="'); write('name" TYPE='); write('"text'); write('" VALUE='); write('"Ваше имя'); write('" SIZE='); write('"30'); write('" onFocus='); write('"clear_field(this)'); write('" onBlur='); write('"check_field(this)'); writeln('"></p><p>'); write('<INPUT NAME="'); write('email" TYPE='); write(' '); write('"text'); write('" VALUE='); write('"Введите ваш e-mail адрес');write('" SIZE='); write('"30'); write('" onFocus='); write('"clear_field(this)'); write('" onBlur='); write('"check_field(this)'); writeln('"></p><p>'); write('<input type="'); write('text" name='); write('"adress'); write('" value='); write('"Введите почтовый адрес'); write('" size='); write('"050'); write('" onFocus='); write('"clear_field(this)'); write('" onBlur='); write('"check_field(this)'); writeln('"></p>'); write('<p>Подписка на: <select name="'); writeln('number" >'); write('<option value="'); write('1"'); write('selected>'); write('1 мес.<'); writeln('/option>'); write('<option value="'); writeln('2">3 мес.</option>'); write('<option value="'); writeln('3">6 мес.</option>'); write(' <option value="4'); writeln('">12 мес.</option> </select> </p>'); write('<p align="center'); write('">Стоимость подписки: <input type='); write('"text'); write('" name='); write('"taxe'); write('" size='); write('"45'); write('" value='); write('"$$'); write('" readonly > </p> <p align='); write('"center'); writeln('">'); write('<input type="'); write('button" name='); write('"taxe1'); write('" value='); write('"Рассчитать стоимость подписки'); write('" onClick='); write('"taxe_field()'); writeln('"> </p> <p>'); write(' <INPUT TYPE="'); write('submit" VALUE='); write('"Отправить'); writeln('">'); write('<INPUT TYPE="reset'); write('" VALUE='); write('"Очистить'); writeln('">'); write('<input type="button'); write('" name='); write('"Submit'); write('" value='); write('"Закрыть'); writeln('" onClick=window.close()> </p> </FORM> </td> </tr> </table>'); writeln('</div>'); writeln('</BODY>'); write('</'); write('HTML'); writeln('>'); } } //конец функции browse </script> </head> <body bgcolor="gainsboro"> <form name="indicator" method="post" action=""> <input type="button" name="Submit" value="Проба" onClick=browse(document.indicator.index1.value,document.indicator.index2.value,document.indicator.section.value)> <input type="hidden" name="index1" value=""40 лет шутя. КВН. Фрагменты биографии""> <input type="hidden" name="index2" value="12"> <input type="hidden" name="section" value="Криминальные"> </form>
</body> </html> ===============Закончили код============ Суть следующая: данные из скрытих полей должны передаться в форму, которая откроется в окошке и отправиться, вместе с тем, что внесет пользователь в поля формы, е-мылом мне...
|
|
 |
|
 |
ed1313
новый человек
|
|
Если бы я еще и CGI знал, так бы и сделал... [img]images/smiles/icon_redface.gif[/img] [img]weep.gif[/img] Безграмотный я, головы только на джаваскрипт и хватило... А откуда ноги растут, я разобрался, только вот что с этим делать - ума не приложу... Весь баг из-за того, что порожденное окно упорно грузится в юникоде и больше никак, что бы не было прописано в скрипте...
|
|
 |
|
 |
|
Страница 1 из 1 [ Сообщений: 10 ] |
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
|
|