Привет!

FF 1.5.0.3. Есть простая страница:

Выделить код

Код:

<html>
<head>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0" linkwrapperstatus="false">
<h1>Login to RSS News Portal</h1>
<form submitdisabledcontrols="false" action="" method="post" name="loginForm" id="loginForm">
...
</form>
<script language="javascript"> pageLoadHandler(); </script>
</body>
</html>

Теперь выполняем:
1) document.forms.length - получаем ноль!!!!
2) document.forms['loginForm'] - консоль молчит
3) document.getElementById('loginForm') -  возвращает null

Я сам не веб-мастер, но всегда думал что это работает. В чём проблемы кто-нибудь знает?

Что делает pageLoadHandler?
У меня всё ОК.

Не знаю что делает pageLoadHandler, но уж точно массив forms не очищает. Это ASP.NET-товский обработчик.

Вот простая страница:

Выделить код

Код:

<!DOCTYPE html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<HEAD>
 <TITLE>test</TITLE>
</HEAD>
<BODY>
	<form name="test" action="test.html" method="POST">
		<INPUT Type="text" Name="testText">
	</form>
</BODY>
</HTML>

Загружаю страницу, иду в JavaScript console, говорю: document.forms.length и получаю ноль!!!
Проверено на FF 1.5.0.3 для Windows и 1.0.6 для Linux.

Ещё на FF 2.0a2 проверил - то же самое. Все три проверки на трёх разных компьютерах.

Выделить код

Код:

<HTML>
<HEAD>
 <TITLE>test</TITLE>
</HEAD>
<BODY>
	<form name="test" action="test.html" method="POST">
		<INPUT id="testText" Type="text" Name="testText">
		<a href="javascript: alert(document.forms.length)">check</a>
	</form>

</BODY>
</HTML>

А так вот работает, если на ссылку ткнуть, т.е. в коде работает, а в JavaScript console не работает. Возникает вопрос: почему?

В какой момент запрашивается объект?

Объект запрашивается когда загрузилась страница:

1) Открываю страницу
2) Иду в Тулс/ДжаваСкрипт консоль
3) Говорю document.forms.length
4) Получаю 0

:dumb:
Консоль ничего не знает про твой документ.
Риторический вопрос: Если ты откроешь три странички и откроешь JS-консоль, то из какой странички ей брать инфу?

Подсказка: набери прямо в адресной строке javascript:alert(document.forms.length)

Консоль ничего не знает про твой документ

То что консоль не знает про активный документ, то это наши свами проблемы как пользователей замечательного браузера. Но само по себе утверждение неверно, поскольку когда я открывал консоль, то я открывал её в конкретном окне, в котором была конкретная ОДНА ЕДИНСТВЕННАЯ активная закладка! В данном случае выбор документа абсолютно однозначен. Вот если бы я начал после открытия консоли между закладками и окнами прыгать - это уже другой вопрос.

Я сознаюсь в том что я не читал документации о предназначении консоли, потому что мне она казалась очевидной. Если вы утверждаете что консоль не может определить текущий документ, тогда какой смысл в кнопке evaluate?

==> Разработка