Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправить строку с русской кодировкой, в новое окно задонного размера 
:(
    Опции темы
Riccon
Дата 27.9.2004, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 5.5.2004

Репутация: нет
Всего: нет



Помогите. Нужно передать строку в вновое, заданных размеров, окно.
Данные имеют символы в русской кодировке.
PM MAIL   Вверх
korob2001
Дата 27.9.2004, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Попробуй этот код:
Код
<html>
<head>
 <title>Тест</title>
  <script language="JavaScript" defer type="text/javascript">
   <!--//
     function sendName() {
              var name = document.forms[0].elements[0].value;
              var winObj = window.open("", "", "width=300 height=250");
              winObj.document.write("<html><body>");
              winObj.document.write("<h2>Привет, " + name + "!</h2><br><br><center><form>");
              winObj.document.write("<input type='button' value='Закрыть' onClick='window.close()'>");
              winObj.document.write("</form></center></body></html>");
              winObj.document.close();
     }
   //-->
  </script>
</head>
<body>
 <form>
  Укажите ваше имя:
  <input type="text" size="25">
  <input type="button" value="Передать данные" onClick="sendName()">
 </form>
</body>
</html>

Если я не правельно понял, то опиши проблему подробнее.

Удачи.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Aliance
Дата 27.9.2004, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Для доступа к новому окну служит такой метод:
newWind.document, где newWind - второй парамерт, передаваемый сценарием, при генерации окна. Дальше - как обычно, допустим, в новое онко тебе нужно поместить возраст человека, заполневшего поле в главном окне, делается это так:
Код

newWind.document.getElementById("txt").value = opener.documents.forms["myForm"].age.value


В главном окне должна быть форма myForm, у нее должно быть текстовое поле age
В дочернем окне - должно быть текстовое поле txt

Всё ;)


Добавлено @ 16:24
korob2001
Ты создаешь контент в генерируемом окне, а задача: передать строку в в новое окно

Это сообщение отредактировал(а) Aliance - 27.9.2004, 16:26
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 28.9.2004, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Riccon а вообще почему появился вопрос? Где были трудности? Браузер хранит строки в памяти в юникоде, с русским проблем не будет.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Riccon
Дата 28.9.2004, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 5.5.2004

Репутация: нет
Всего: нет



Блин, я не правиьно сформулировал вопос.
Данные передаются в строке url формой методом GET.



Добавлено @ 11:29
korob2001, а как переменную name можно присвоить php-переменной нового окна.

PM MAIL   Вверх
Се ля ви
Дата 28.9.2004, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



тогда используй функцию escape() и unescape() для преобразования русского текста в url-формат при запросе. escape преобразует в этот формат - т.е. русский текст передаёшь этолй функции в качестве параметра и получаешь вариант, приемлемый для записи в URL, а unescape() - для приёма на другой стороне, ей передаёшь абракадабру и она возвращает исходный текст :-)


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
Riccon
Дата 28.9.2004, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 5.5.2004

Репутация: нет
Всего: нет



Я в java ни в зуб ногой, если можно, примерчик чиркните какой-нить! Плиз.
PM MAIL   Вверх
Riccon
Дата 28.9.2004, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 5.5.2004

Репутация: нет
Всего: нет



Пришлось решать проблему при помощи пхп, хотя всё-равно интересно, как escape юзать.
Спасибо всем за помощь.
PM MAIL   Вверх
korob2001
Дата 28.9.2004, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Попробуй этот код:
Код

<html>
<head>
 <title>Пример</title>
  <script language="JavaScript" defer type="text/javascript">
   <!--//
     /*
       Следующая функция будет выдёргивать
       строку из текстового поля и перекодировать
       её в формат приемлемый для перередачи
       параметров в URL методом GET
     */
     function incodingStr() {
              // Выуживаем строку из текстового поля
              var str = document.forms[0].elements[0].value;
              // Перекодируем строку
              var incStr = escape( str );
              // Результат выводим в тоже поле
              document.forms[0].elements[0].value = incStr;
     }

     /*
       Следующая функция будет прекодировать
       закодированную строку в четабедбный вид.
       Результат будет показан в томже поле.
       Здесь, в теле функции, все дейсвия аналогичны
       действиям в функции выше, потому коментариев
       не будет.
     */
     function decodingStr() {
              var str = document.forms[0].elements[0].value;
              var decStr = unescape( str );
              document.forms[0].elements[0].value = decStr;
     }
  //-->
 </script>
</head>
<body>
 <form>
 <b>Укажите ваше имя: </b>
 <input type="text" size="60"><hr>
 <input type="button" value="Закодировать" onClick="incodingStr()">
 <input type="button" value="Раскодировать" onClick="decodingStr()">
 </form>
</body>
</html>

А что касается передечи параметров серверному приложению, то помоему для этого есть, в JavaScript, метод submit() и GET(). Но так как я и сам не очень силён в JavaScript, то ничем большим помочь не могу.
Может кто другой подскажет? Мне тоже будет интересно.

Удачи.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Aliance
Дата 28.9.2004, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Цитата(korob2001 @ 28.9.2004, 17:03)
var str = document.forms[0].elements[0].value;

Используется 2 раза - можно сделать и глобальной...
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 28.9.2004, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(korob2001 @ 28.9.2004, 16:03)
var str = document.forms[0].elements[0].value;

Не стоит обращатся по индексам, лучше по именам: document.forms["formname"].elements["elname"].value;
Aliance подобная оптимизация даст прирост производительности на 0.000000.... smile.gif

Riccon передачу параметров по страницам различными способами обсуждали здесь: http://forum.vingrad.ru/index.php?showtopic=15377


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Aliance
Дата 29.9.2004, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Цитата(Sardar @ 28.9.2004, 21:47)
Aliance подобная оптимизация даст прирост производительности на 0.000000....

В данном случаи - да, но нужно привыкать так делать, ведь при написании огромного сценария - это реально поможет, как минимум, сократить его запись smile.gif
PM MAIL WWW ICQ Skype   Вверх
korob2001
Дата 29.9.2004, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Цитата

Используется 2 раза - можно сделать и глобальной...

Не знаю как ты, а я сначала пишу код и только потом его оптимизирую. В данном случае, вопрос был не о том как оптимизировать код, вот я и привёл челу пример, по понятнее. И использование глобальных переменных нужно там, где оно нужно. Если уж на то пошло, то давай себе представим такой пример:
Чел запускает пример и по какимто причинам не захотел жать на кнопки.

Если переменная объявлена глобально, то на это, в данном случае уйдёт время в любом случае, а в случае с локальными переменными это время теряется только в том случае если чел нажал на кнопку. Это конечно не назовёшь потерей времени, но это я к чему? Не злоупотребляй глобальными пременными, везде есть свои плюы и минусы.

Цитата

Не стоит обращатся по индексам, лучше по именам: document.forms["formname"].elements["elname"].value;

Поясни, если не трудно. Какая разница?

Цитата

В данном случаи - да, но нужно привыкать так делать, ведь при написании огромного сценария - это реально поможет, как минимум, сократить его запись

smile.gif Поверь, как писать огромные программы я знаю.

Это сообщение отредактировал(а) korob2001 - 29.9.2004, 20:02


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Sardar
Дата 29.9.2004, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Глобальные переменные это всегда зло в чистом виде smile.gif

korob2001 если обращатся по индкесам, то ты зависишь от структуры документа. Представь ты добавил форму или поенял местами элементы. Обращение по имени позволяет избежать эти проблемы.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
korob2001
Дата 29.9.2004, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Sardar
Понял. Ты прав, так действительно зависишь от структуры документа.
Большое спасибо.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0656 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.