Показать сообщение отдельно
  #1 (permalink)  
Старый 15.12.2009, 19:33
Новичок на форуме
Отправить личное сообщение для Alex82 Посмотреть профиль Найти все сообщения от Alex82
 
Регистрация: 15.12.2009
Сообщений: 6

Не срабатывает обработчик window.onload.
Привет Всем,
я новичок в JavaScript и не могу разобраться с одной проблемой. Подскажите, пожалуйста, в чем может быть дело.

Есть код (плагин для Google Chrome):
if (window.top.onload)
   {
        var existingOnload = null;
        existingOnload = window.top.onload;
        window.top.onload = function (ev) {  // сюда не попадаем...      
             if (existingOnload) { existingOnload(ev); }
             setTimeout( Plugin.init , 1);        
        };
   }
   else
   {
        Plugin.init();
   }


На некоторых страницах (например, http://maps.yahoo.com/) срабатывает ветка if (window.top.onload), но не срабатывает функция
window.top.onload = function (ev) {        
             if (existingOnload) { existingOnload(ev); }
             setTimeout( Plugin.init , 1);        
};


Почему такое может быть? Не инициируется событие onload?

На странице http://maps.yahoo.com/ имеется javascript код:
window.onload=YAHOO.Maps.loaded; ...

но по идее должен выполниться он, а затем мой Plugin.init(); Тем не менее упраление не попадает в мою функцию window.top.onload = function (ev) {...}.

Ветка if (window.top.onload) добавлена в связи с тем, что на некоторых сайтах javascript в window.onload выполняет такой код:
objects = document.getElementsByTagName("object");
	for (var i = 0; i < objects.length; i++)
	{
		objects[i].outerHTML = objects[i].outerHTML;
	}

Моя цель сделать так, чтобы этот код отработал РАНЬШЕ моего вызова Plugin.init.

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

Environment:
Windows XP SP3
Google Chrome 4.0.249.30
Ответить с цитированием