Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Открыть окно и заполнить поля (как?)


Автор: Konstantin555 20.8.2008, 18:06
Есть два файла index.php и t.php.
Нужно, чтобы по нажатию на кнопке "GO №2!" открылось окно, показалось сообщение с текущим значением поля, изменилось и показалось сообщение с новым значением поля

index.php:
Код

<html>

<script language="JavaScript">
 function GetVal()
 {
  var nv = document.f1.m1.value;
  alert(nv);
 };

 function GetMyVal()
 {
  var win = window.open('http://php_mysql/test/t.php','','');
  var val1 = win.document.myform.text2.value;
  alert(val1);
  val1="Test Test Test";
  alert(val1);
 }
</script>

<form name='f1'>
<input type='text' value='Test!!!' name='m1'>
<input type='button' value='GO №1!' name='b1' OnClick="GetVal()">
<input type='button' value='GO №2!' name='b2' OnClick="GetMyVal()">
</form>
</html>


t.php:
Код

<html>
<form name='myform'>
<input name='text2' type='text' value='Testing...'>
</form>
</html>


При нажатии на кнопке "GO №1" - появляется всплывающее окно с текстом контрола m1, но по нажатии на кнопке "GO №2" - открывается дочернее окно (со страницей t.php) и выскакивает следующая ошибка (описание ошибки взято из Оперы):
Код

JavaScript - http://php_mysql/test/
Event thread: click
Error:
name: TypeError
message: Statement on line 11: Cannot convert undefined or null to Object
Backtrace:
  Line 11 of inline#1 script in http://php_mysql/test/: In function GetMyVal
      var val1 = win.document.myform.text2.value;
  Line 1 of function script 
    GetMyVal()
  ...
stacktrace: n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'



В чём моя ошибка и как её решить?.. Заранее, спасибо!

Автор: Wolf1994 20.8.2008, 19:00
Цитата(Konstantin555 @  20.8.2008,  18:06 Найти цитируемый пост)
message: Statement on line 11: Cannot convert undefined or null to Object

Это кажется означает, что window.open не возвращает ничего.
Насколько я знаю, обращаться для записи можно только к элементам документов, загруженных в виде фреймов и то, только для страниц сайта, принадлежащих одному домену.

Автор: Konstantin555 20.8.2008, 19:35
Цитата(Wolf1994 @ 20.8.2008,  19:00)
Цитата(Konstantin555 @  20.8.2008,  18:06 Найти цитируемый пост)
message: Statement on line 11: Cannot convert undefined or null to Object

Это кажется означает, что window.open не возвращает ничего.
Насколько я знаю, обращаться для записи можно только к элементам документов, загруженных в виде фреймов и то, только для страниц сайта, принадлежащих одному домену.

Думаю что возвращает, т.к. открыв окно - можно с ним манипулировать. Вот пример:
http://htmlcoder.visions.ru/JavaScript/?16
Код

popupWin = window.open("contacts.html", "contacts", "location,width=400,height=300,top=0");
popupWin.focus(); // передаём фокус новому окну

Автор: TryLight 21.8.2008, 01:27
У меня в ИЕ6 все работает, только замени
http://php_mysql/test/t.php на t.php 

Автор: Konstantin555 21.8.2008, 01:42
Цитата(TryLight @ 21.8.2008,  01:27)
У меня в ИЕ6 все работает, только замени
http://php_mysql/test/t.php на t.php 

Заменил, результат тот же...
user posted image

Данные два файла я создал для примера. А так нужно открыть другой сайт (к примеру ya.ru) и в нём изменить текстовое поле / получить значение. Т.е. открываемая страница будет находится на другом сервере...

Автор: Ghirik 24.8.2008, 12:54
Цитата

Данные два файла я создал для примера. А так нужно открыть другой сайт (к примеру ya.ru) и в нём изменить текстовое поле / получить значение. Т.е. открываемая страница будет находится на другом сервере... 


Ну вот... Все ваши примеры/вопросы не имеют смысла, потому как открыть нужно чужой URL. Открыть то можно, но получить значение из чужего документа, а тем более изменить - нельзя.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)