Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Замена body onload (https://javascript.ru/forum/dom-window/16609-zamena-body-onload.html)

Nitro_Generate 14.04.2011 17:35

Замена body onload
 
Здравствствуйте.
Имеется скрипт, который скрывает и открывает некоторые меню.
function SwitchMenu(obj) {
	if (document.getElementById) {
		var el = document.getElementById(obj);
		var ar = document.getElementById("cont").getElementsByTagName("div");
		if (el.style.display == "none") {
			for (var i=0; i<ar.length; i++) {
				ar[i].style.display = "none";
			}
			el.style.display = "block";
		} else {
			el.style.display = "none";
		}
	}
}

Он вызывается в тэге <body>
echp "<BODY onload=\"SwitchMenu('sub".$cat_nav['id']."')\"></body>";

Собственно $cat_nav['id'] - обозначает категорию, в которой мы находимся (что бы та была раскрыта).
Проблема в том, что при использовании onload браузер для выполнения скрипта ожидает полной загрузки страницы. Иногда бывает что эта загрузка очень сильно затягивается.
По этому возникает вопрос, как и чем заменить onload ? Что бы SwitchMenu выполнялось без ожидания, а мгновенно.
Мои знания JS почти 0. И попробовав этот вариант
<script>SwitchMenu('sub".$cat_nav['id']."');</script>

Результата нет.

dmitriymar 14.04.2011 20:27

ну поставь содержимое функции в теле страницы-выполниться раньше чем документ будет загружен

firstchild 14.04.2011 23:58

Цитата:

Сообщение от Nitro_Generate (Сообщение 100667)
<script>SwitchMenu('sub".$cat_nav['id']."');</script>

Результата нет.

Вызов поставить в теле страницы после отрисовки вызываемого элемента, хотя по мне это ГК какой-то. Не проще css -ами управлять, а уж когда загрузиться тогда и ?, хотя я смотрю здесь один фиг ГК, так что работать должно.


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