Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Выполнение JS-кода после загрузки страницы (НЕ window.onload!) (https://javascript.ru/forum/events/15114-vypolnenie-js-koda-posle-zagruzki-stranicy-ne-window-onload.html)

fox 14.02.2011 00:17

Выполнение JS-кода после загрузки страницы (НЕ window.onload!)
 
Здравствуйте.

Суть вопроса такова: есть user-JS, подключаемый браузером (Опера), код в котором должен выполняться после загрузки DOM и выполнения всех JS-скриптов на загружаемой странице. Зачем это нужно: JS-код страницы генерит DOM, к которому необходимо обеспечить доступ, естественно, никакие window.onload и DOMContentLoaded не подходят для решения задачи. Собственно, этот момент и надо отловить.

Заранее благодарен.

fox 14.02.2011 00:59

Гм, вот так всегда: полдня гугления, создание ветки на форуме, и вот оно решение, рождающееся в муках чтения мануалов.

Вот что получилось:

function initOnLoad(e)
	{  
		//Проверка e.length необходима, если нужно знать, имеет ли элемент вложенные элементы. Если нужно лишь удостовериться в наличии элемента, то эту строку нужно убрать, а в startMonitoring() использовать getElementById

		if(e != null && e.length != 0) {loadComplete();}
		else {setTimeout(function()	   {initOnLoad(e);}, 0);}
	}

function loadComplete()
	{
		//Действия после появления необходимого элемента в DOM
	}
	
function startMonitoring()
	{
		//"Прослушиваемый" элемент
		e = document.getElementsByClassName('');
		initOnLoad(e);
	}
	
startMonitoring();


Сам код рассчитан на "прослушивание" одного элемента, но его не сложно модифицировать для группы (Например, реализовать в виде класса)


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