powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Нужна помощь по теории window.onload
8 сообщений из 8, страница 1 из 1
Нужна помощь по теории window.onload
    #38914361
Eugene Ostenbaken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему этот код выводит null? Ведь функция main() должна запуститься уже после загрузки ВСЕГО документа - я полагаю это значит, что загрузились ВСЁ, а значит и body уже существет!!!!

<html>
<head>
<title>window.onload</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script>
window.onload = main();
function main(){
var b = document.body;
alert(b);
}
</script>
</head>
<body>
<div>ёёё</div>
<script>
//window.onload = main(); // тут работает!
</script>
</body>
</html>


Ну и ещё маленький вопрос - какие отличия между этими объявлениями функций:?
function main(){...}
main = function(){...}
...
Рейтинг: 0 / 0
Нужна помощь по теории window.onload
    #38914384
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene Ostenbakenкакие отличия между этими объявлениями функций:?
Код: javascript
1.
2.
function main(){...}
main = function(){...}


Все ответы есть в букваре...
http://javascript.ru/basic/functions#sozdanie-funkciy
...
Рейтинг: 0 / 0
Нужна помощь по теории window.onload
    #38914388
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene OstenbakenПочему этот код выводит null? Ведь функция main() должна запуститься уже после загрузки ВСЕГО документа - я полагаю это значит, что загрузились ВСЁ, а значит и body уже существет!!!!
Начнем с того, что твое мнение JS не учитывает. Он работает по своим правилам.

Eugene Ostenbaken
Код: javascript
1.
2.
3.
4.
5.
window.onload = main();
function main(){
	var b = document.body;
	alert(b);
}


Ты хоть понимаешь, что означает такой вызов?
Код: javascript
1.
window.onload = main();
...
Рейтинг: 0 / 0
Нужна помощь по теории window.onload
    #38915578
Eugene Ostenbaken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

Я полагаю это значит, что подписываем объект window под событие onload и срабатывает вызов этой функции по наступлению этого события. Разве не так?
...
Рейтинг: 0 / 0
Нужна помощь по теории window.onload
    #38915583
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene Ostenbaken, main() это немедленный вызов функции. Соответственно запись window.onload = main(); означает - "вызови main и присвой возвращаемое значение window.onload". Следует написать так:
Код: javascript
1.
2.
3.
4.
5.
function main() {
	var b = document.body;
	alert(b);
}
window.onload = main;


или так:
Код: javascript
1.
2.
3.
4.
window.onload = function() {
	var b = document.body;
	alert(b);
};
...
Рейтинг: 0 / 0
Нужна помощь по теории window.onload
    #38915596
Eugene Ostenbaken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,

СПАСИБО!

PS Буду думать.
...
Рейтинг: 0 / 0
Нужна помощь по теории window.onload
    #38916392
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene OstenbakenРазве не так?
Далеко не так...

Ты просто свойству объекта присваиваешь то, что вернет функция. И не более того... А твоя функция вообще ничего не возвращает.
...
Рейтинг: 0 / 0
Нужна помощь по теории window.onload
    #38917676
Eugene Ostenbaken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

Относительно правой части выражения мне уже разъяснили.
А относительно левой части - разве не так?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Нужна помощь по теории window.onload
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]