Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Почему код работает? (обращение к форме из window) (https://javascript.ru/forum/dom-window/8921-pochemu-kod-rabotaet-obrashhenie-k-forme-iz-window.html)

Василий Б. 20.04.2010 21:30

Почему код работает? (обращение к форме из window)
 
<FORM id='auth' action='http://mail.ru' method=post> 
<INPUT type=hidden name=aaa value=1> 
</FORM>

<script>auth.submit();</script>


Как объясняется работа данного кода? Разве обращение к форме не должно производиться через коллекцию? Почему объект формы находится в области window? Не понятно...

Octane 20.04.2010 21:53

http://javascript.ru/tutorial/dom/search#poisk-po-id

Василий Б. 20.04.2010 22:07

Octane,
ну то что к элементу можно обращаться по getElementById я в курсе. меня интересует, почему вышеприведенный код работает?

Nekromancer 20.04.2010 22:11

Работает и слава богу. Это вот такая дополнительная возможность от браузеров, бонус пак ;)

Octane 20.04.2010 22:18

Обычно спрашивают: «Почему не работает?» :)

В Firefox такой способ обращения к элементам будет работать только в Quirks Mode, как только добавите на страницу DOCTYPE, то браузер перейдет в Standards Compliant Mode, и поиск элемента по идентификатору станет возможным только с помощью getElementById.

Василий Б. 20.04.2010 22:26

Цитата:

В Firefox такой способ обращения к элементам будет работать только в Quirks Mode
да, действительно, спасибо

Цитата:

поиск элемента по идентификатору станет возможным только с помощью getElementById.
Ну по старинке тоже работает:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>Untitled</title></head><body>

<FORM id='auth' action='http://mail.ru' method=post> 
<INPUT type=hidden name=Login value=1> 
</FORM>
<script>document.forms.auth.submit();</script> 

</body></html>

Nekromancer 20.04.2010 22:31

Так вообще то по имени должно находить, а так как вы это не по старинке, а тоже по бонус паку.

Octane 20.04.2010 22:39

Цитата:

Сообщение от Nekromancer
тоже по бонус паку

Нет, document.forms, links, frames и images из стандарта DOM Level 1.

Василий Б. 20.04.2010 22:43

Цитата:

Сообщение от Nekromancer (Сообщение 52400)
Так вообще то по имени должно находить, а так как вы это не по старинке, а тоже по бонус паку.

Ну смотря что считать бонус-паком..

Насколько я понимаю, объектная модель броузера BOM всегда содержала иерархию объектов вида

window->document->forms

и естественно меня смутило, что вызов

auth.submit()
работает, ибо логически это не должно работать. Что делает объект формы в области объекта окна??

subzey 20.04.2010 23:00

Цитата:

Сообщение от Василий Б.
Как объясняется работа данного кода?

У Вас браузер слишком добрый. :3


Часовой пояс GMT +3, время: 10:24.