Объект в дочернем окне

Fed_1359

Новичок
Объект в дочернем окне

Как увидеть объект в дочернем окне, т.е. есть два файла:

в первом файле:

<iframe src=2.htm name=asd></iframe>
<script>

</script>

во втором:

<div id="qwe" name=good>1</div>


нужно увидеть объект qwe, и его name.

если поменять местами фреймы, то из дочернего окна все отлично работает parent.qwe.name;
 

crocodile2u

http://vbolshov.org.ru
Обратись из "главного" окна к iframe'у, так, чтобы получить объект window (кстати, parent в том случае, кот. ты описал - это тоже объект window).
 

Fed_1359

Новичок
Так в том то вся и проблема, КАК к нему обратиться, я уже кучу вариантов перепробывал.

-~{}~ 21.01.05 11:33:

Это вообще возможно сделать?? что-то никто нигде не может ответить.
 

Fed_1359

Новичок
тоже не то. какой-то объект, но не тот.

document.all.asd.qwe.name; не равно "good"
 

Ямерт

The Old One
Fed_1359, пока не будешь описывать чётко и внятно ситуацию, никто тебе помочь не сможет. "не работает, не видно объекта." - не лучший аргумент рассчитывать на помощь.
Про дочернее окно тоже не понятно. <iframe> - это не дочернее окно, а фрэйм. Можно спорить по этому поводу, но дочерним обычно называют окно, открытое из главного (через window.open())
 

rotoZOOM

ACM maniac
Fed_1359 а ты уверен что вообще у div'а есть такое свойство как name или id ?
Ты просто можешь обратиться к этому самому div'у как
document.all.asd.qwe или document.all.asd.good, но вот свойства name там нет.
 

Fed_1359

Новичок
Немного не правильно задал вопрос, не дочернее окно а просто фрейм, и в фрейме объект.

rotoZOOM, есть свойство name, если к примеру сделать объект <div id="qwe" name=good>1</div> в окне, а из фрейма его посомтреть, то
parent.qwe.name равно good.
 

rotoZOOM

ACM maniac
попробуй так:
Код:
var lnk=document.all.asd.qwe;

for (var i=0;i<lnk.length;i++){
     alert (lnk.attributes[i].nodeName+"="+lnk.attributes[i].nodeValue);
}
И посмотри все аттрибуты объекта
 

Ямерт

The Old One
"var lnk=document.all.asd.qwe;" не рулит, потому что будет работать только в ИЕ.
Лучше использовать document.getElementById("qwe");
 

Fed_1359

Новичок
rotoZOOM, lnk.length - есть nulll или не является объектом.

document.getElementById("qwe"); с этим ничегон не происходит.

может вообще нельзя увидеть объект этот?
 

rotoZOOM

ACM maniac
document.getElementsByName("asd")[0].getElementById("qwe").name - о какой изврат ... попробуй
 

Ямерт

The Old One
rotoZOOM это полный изврат.

Fed_1359 parent.document.getElementById("qwe"); должен работать.
 

Fed_1359

Новичок
Ямерт, нужно не из фрейма увидеть объект. а наоборот в фрейме. на странице фрейм, в фрейме объект. а parent это из фрейма. так он из фрейма работает, наверно.

rotoZOOM, не прокатило, объект не поддерживает это свойство или метод.
 

Ямерт

The Old One
Тогда в главном окне asd.getElementById("qwe") разве ничего не возвращает?
 

Ямерт

The Old One
Конечно, не возращает.
Потому что asd - это объект типа window, как и любой фрэйм. getElementById() - функция объекта document.

Короче, вот это работает:

1.файл.
PHP:
<html>
<body>
asdasd
asdasdasd<br>
asdasd<br>

<iframe src="b.html" name="asd" id="asd"></iframe>

<input type="button" value="Press me" onClick="alert(asd.document.getElementById('qwe'))">

</body>
</html>
b.html:
PHP:
<html>
<body>
	<div id="qwe" name="qwe">1</div>
</body>
</html>
 
Сверху