IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   JS: Скрипт для вызова элемента одного окна из другого (http://www.imho.ws/showthread.php?t=46792)

Psionic Vision 24.12.2003 07:08

JS: Скрипт для вызова элемента одного окна из другого
 
Если есть окно А, из него вызывается окно Б, в окне Б есть текстовый элемент Ц, то можно ли, после вызова окна Б, из окна А изменить значение элемента Ц?

RaZEr 24.12.2003 07:14

Когда window.open() открываешь окно, то указываешь его имя. Вот через это имя и обращайся. Например: win_name.document.forms[0].elements[0].value .
Код:

mywin = window.open("http://something.ru/page.html","mywinname");
mywin.document.forms["form_name"].elements["elem_name"].value


Psionic Vision 24.12.2003 07:44

Ясно

Добавлено в ту же минуту:
а чем отличается forms.formname от forms["formsname"]?

RaZEr 24.12.2003 09:33

Ничем.

Psionic Vision 24.12.2003 17:50

Спасибо. у меня тут еще вопрос:
Если вызываемый элемент это <option> внутри <select>, и нужно просто выделить определенный элемент из <select> то как это сделать?

hempsmoke 24.12.2003 22:29

на все option пропиши a href

Psionic Vision 24.12.2003 22:55

чего? при чем здесь a href к option?

hempsmoke 24.12.2003 23:30

да, изивини, я не понял тебя...
тебе нужно в select прописать событие onchange=

CEO 25.12.2003 00:04

Наверно так:
Основное окно:
<html>
<script>
var objwin=window.open("mypage.htm","NewWin","height=150, width=300")
var i=objwin.document.all.testit.selectedIndex
alert(objwin.document.all.testit.options[i].text)
</script>
</html>
Всплывающее окно:
<script>
function myselection()
{i=document.all.testit.selectedIndex}
</script>
<select name=testit onchange="myselection()">
<option id="q1">qw1
<option id="q2" selected>qw2
<option id="q3">qw3
<option id="q4">qw4
</select>

Stasik 25.12.2003 00:45

imho он имеет ввиду выделить цветом.. через CSS imho

Psionic Vision 25.12.2003 00:49

CEO
hempsmoke
Опять вы меня не поняли...
Я имею ввиду - есть окно А, из него вызывается окно Б.
В окне Б есть

<select name="somesel">
<option name="op1" value="1">1</option>
<option name="op2" value="2">2</option>
</select>

Так вот нужно из окна А вызвать окно Б (как это сделать мне уже ясно), а затем, из окна А выделить пункт 2 из списка.
При чем здеcь alert, onselect и прочее?

Добавлено в ту же минуту:
Stasik
Нет, просто выделить. В смысле - поставить focus

Добавлено через 1 минуту:
что то вроде window.forms.somesel.op2.focus??

CEO 25.12.2003 01:01

А, ну тогда попробуй так(в основном окне)
objwin.document.all.testit.selectedIndex=2
objwin см выше, 2-- индекс.

Psionic Vision 25.12.2003 01:24

CEO
О, это уже больше похоже на правду. Сейчас буду пробовать

Добавлено через 13 минут:
Я написал вызов вот так
<a href="#null"
onclick="var objwin=window.open('page.php','NewWin','Width=550,Height=500'); objwin.document.all.forms.upload.to.selectedIndex=2;">ссылка</a>

В результате - document.all.forms.upload.to is null or not an object... Хотя всплывающее окно открывается

upload - имя формы,
to - имя элемента select

CEO 25.12.2003 01:29

Neo :Покажи так же и код касаемый select(т.е. что там у тебя по этому поводу в 'page. php') написаннно?
У меня то что я написал (в IE 5.5) работало.

Psionic Vision 25.12.2003 01:56

<form name=upload>
<select name="to">
<option name=name1 value=value1>blabla1</option>
<option name=name2 value=value2>blabla2</option>
<option name=name3 value=value3>blabla3</option>
<option name=name4 value=value4>blabla4</option>
</select>
</form>

CEO 25.12.2003 02:08

Neo :Вместо Name попробуй писать id="" А value там зачем?

Psionic Vision 25.12.2003 03:03

Низачем. Это я так, привел пример упрощенной формы. На самом деле там нет никакого value...

Добавлено через 1 минуту:
И никакого результату от того что я ID пишу...

Добавлено через 1 минуту:
У тебя элемент select не был вложен в форму... а какой толк от такого элемента?

CEO 25.12.2003 04:27

---------------------
<script>
var objwin=window.open("mypage.htm","NewWin","height=150, width=300")
x=objwin.xi.testit.options[1].selected=true
//0,1,или какой-там тебе нужен индекс...
</script>
---------------------
<form name="xi">
<select name=testit onchange="myselection()">
<option id="q1" selected>qw1
<option id="q2">qw2
<option id="q3">qw3
<option id="q4">qw4
</select>
</form>
Должно работать, т.к. у меня работает

Добавлено через 5 минут:
Ошибка objwin.document.all.forms.upload.to.selectedIndex=2; в том, что иерархия объектов такая:
window
|
Forms
|
Select
|
Options

Psionic Vision 25.12.2003 05:50

xi.testit is null or not an object
:баран:

Добавлено через 25 минут:
Кстати, а кто это подредактировал заголовок моего топика?

RaZEr 25.12.2003 10:10

Цитата:

Ошибка objwin.document.all.forms.upload.to.selectedIndex=2; в том, что иерархия объектов такая:
window
|
Forms
|
Select
|
Options
Объектная модель: window -> document -> forms.

Psionic Vision 25.12.2003 23:56

RaZEr
тогда она пишет
document.forms.upload.to is null or not an object...
:confused:

CEO 26.12.2003 17:37

Вложений: 1
RaZEr :Правильно, "Объектная модель: window -> document -> forms",
но как я написал тоже почему-то работает в IE5.5.
Neo:А файл всплываюшего окна целиком можно посмотреть?

Psionic Vision 26.12.2003 17:51

Вложений: 1
в принципе, это уже не актуально, поскольку я избавился от окошка вообще (java же не у всех включена)/ но разобраться интересно... так что прикладываю
кстати у меня тоже 5.5

Добавлено в ту же минуту:
Да кстати, спасибо за объектную модель

CEO 26.12.2003 18:00

Neo :Да, всплывающие окна вешь не очень приятная.
Но чисто в научных целях попробуем разобраться...

Psionic Vision 26.12.2003 18:53

Как удалось без ява? смотри здесь http://shabash.dreamsee.ru/contacts/sendmsg.php

Добавлено через 3 минуты:
Ну да и JavaScript не у всех включен.. жаль никто не может реализовать по настоящему, то, что мы обсуждаем в этой теме...


Часовой пояс GMT +4, время: 00:52.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.