JS: .forms.length=0. Почему?

Discussion in 'PHP' started by vvs777, 20 Jan 2007.

  1. vvs777

    vvs777 Elder - Старейшина

    Joined:
    16 Nov 2004
    Messages:
    393
    Likes Received:
    212
    Reputations:
    4
    Наткнулся на проблему.
    2 html файла.

    Первый - с ифреймом.
    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:
    <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>
     
    #1 vvs777, 20 Jan 2007
    Last edited by a moderator: 20 Jan 2007
  2. bopoh13

    bopoh13 Elder - Старейшина

    Joined:
    31 Oct 2006
    Messages:
    195
    Likes Received:
    20
    Reputations:
    0
    Смотря с какой страницы ты хочешь... вот пример с обеих.

    page1.html
    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:
    <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".
     
  3. vvs777

    vvs777 Elder - Старейшина

    Joined:
    16 Nov 2004
    Messages:
    393
    Likes Received:
    212
    Reputations:
    4
    мЛЯ я понял!
    Оно загрузиться не успевало =) вот и давало 0.
    Спасибо. Прояснил.

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

    bopoh13 Elder - Старейшина

    Joined:
    31 Oct 2006
    Messages:
    195
    Likes Received:
    20
    Reputations:
    0
    Гггг!
    Очередной флудер?! =)
     
  5. vvs777

    vvs777 Elder - Старейшина

    Joined:
    16 Nov 2004
    Messages:
    393
    Likes Received:
    212
    Reputations:
    4
    Блин, проблема №2. Откуда взялась - непонятно. Раньше не сталкивался.
    Когда IFRAME.SRC=http://.... вобщзем другой сайт
    //k=parent.page1.document.forms.length;
    k=parent.document.getElementById("page1").contentWindow.document.forms.length;
    вылетает "отказано в доступе"
    Как с этим бороцца?
     
  6. vvs777

    vvs777 Elder - Старейшина

    Joined:
    16 Nov 2004
    Messages:
    393
    Likes Received:
    212
    Reputations:
    4
    Та же х*ня при использовании frames и window.open
     
  7. bopoh13

    bopoh13 Elder - Старейшина

    Joined:
    31 Oct 2006
    Messages:
    195
    Likes Received:
    20
    Reputations:
    0
    Дык! Политика безопасности называется =)