PDA

Просмотр полной версии : JS: .forms.length=0. Почему?


vvs777
20.01.2007, 20:23
Наткнулся на проблему.
2 html файла.

Первый - с ифреймом.
<HTML>
<iframe name="page1" id="page1" src="file2.htm" onLoad="proc2();"></iframe>
<SCRIPT>
function proc2() {
k=parent.page1.document.forms.length;
document.write(k);
}
</SCRIPT>
</HTML>

parent.page1.document.forms.length почему-то равен 0, когда в file2 есть 1 форма. Файл отображается нормально, document действительно его, того файла. Почему нельзя достучаться до формы?

file2.htm
<HTML><BODY>
<form metod="POST" action="..." name="form1" id="form1">
<input type="text" name="param1" value="">
<input type="text" name="param2" value="">
<input type="text" name="param3" value="">
<input type="submit" value="OK">
</form>
</BODY></HTML>

bopoh13
20.01.2007, 21:08
Смотря с какой страницы ты хочешь... вот пример с обеих.

page1.html<HTML><BODY>
<form metod="POST" action="page2.html" name="form1" id="form1">
<input type="text" name="param1" value="">
<input type="text" name="param2" value="">
<input type="text" name="param3" value="">
<input type="submit" value="OK">
</form>
<form metod="POST" action="page2.html" name="form2" id="form2">
<input type="text" name="param1" value="">
<input type="text" name="param2" value="">
<input type="text" name="param3" value="">
<input type="submit" value="OK">
</form>
</BODY></HTML>
page2.html<HTML>
<iframe name="page1" id="page1" src="page1.html" onLoad="proc2();"></iframe>
<SCRIPT>
function proc2() {
k=parent.page1.document.forms.length;
document.write(k);
}
</SCRIPT>
</HTML>ЗЫ: Только не советую истользовать вариант в page1.html action="page2.html".

vvs777
20.01.2007, 21:15
мЛЯ я понял!
Оно загрузиться не успевало =) вот и давало 0.
Спасибо. Прояснил.

А зачем надо - помоему ясно =) Иначе зачем лезть в чужой document?
Ессно, авторег. Вместо пхп + фсокопен .
Вспоминаю старые добрые времена когда не знал пхп и когда не проверялись рефереры. А сейчас везде проверяются =(

bopoh13
20.01.2007, 21:19
Гггг!
Очередной флудер?! =)

vvs777
20.01.2007, 22:04
Блин, проблема №2. Откуда взялась - непонятно. Раньше не сталкивался.
Когда IFRAME.SRC=http://.... вобщзем другой сайт
//k=parent.page1.document.forms.length;
k=parent.document.getElementById("page1").contentWindow.document.forms.length;
вылетает "отказано в доступе"
Как с этим бороцца?

vvs777
20.01.2007, 22:11
Та же х*ня при использовании frames и window.open

bopoh13
22.01.2007, 15:15
Дык! Политика безопасности называется =)