Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Конфликт window.onload?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Подозреваю, что он
Uchkuma
Отправлено: 15 Апреля, 2011 - 11:26:12
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Использую визуальный редактор SPAW v.2. А также использую свои скрипты на сайте.
Определенные javascript-функции запускаю следующим образом:
CODE (javascript):
скопировать код в буфер обмена
  1. startInit = function(){
  2. request('tpl');
  3. changeType();
  4. changeLang();
  5. }
  6. window.onload = startInit;

Ниже подключается редактор, который вставляет в страницу примерно следующее:
CODE (html):
скопировать код в буфер обмена
  1. <script type="text/javascript" id="content_ru__script">
  2. <!--
  3. SpawEngine.setSpawDir("/inc/lib/spaw/");
  4.  
  5. лишний код опущен
  6.  
  7. content_ru__obj.onLoadHookup();
  8. //-->
  9. </script>


Нашел onLoadHookup в классе редактора:
CODE (javascript):
скопировать код в буфер обмена
  1. SpawEditor.prototype.onLoadHookup = function()
  2. {
  3.   var spaw_tmpstr="";
  4.   if (window.onload != null)
  5.   {
  6.     spaw_tmpstr = window.onload.toString();
  7.     var spaw_i = spaw_tmpstr.indexOf("{") + 2;
  8.     spaw_tmpstr = spaw_tmpstr.substr(spaw_i,spaw_tmpstr.length-spaw_i-2);
  9.   }
  10. window.onload = new Function(this.name+'_obj.initialize();'+spaw_tmpstr);
  11.  
  12. }


В IE обнаружилась частичная неработоспособность редактора. Причем лишь на некоторых сайтах, но систематически. Интересный момент. После очистки кеша и первичной загрузки страницы с редактором, все отрабатывает нормально и с редактором можно работать. При всех последующих загрузках та же хрень. Чуть дольше загрузка страницы и работает? Однако

Может ли это быть из-за конфликта window.onload? И как в моем случае изменить вызов функций, чтобы этого избежать? Познания мои в javascript очень общие.
 
 Top
valenok
Отправлено: 15 Апреля, 2011 - 11:47:25
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. // cross browser event handling
  3. function addEvent( el, type, fn ) {
  4.   if ( window.addEventListener ) {
  5.     el.addEventListener( type, fn, false );
  6.   } else if ( window.attachEvent ) {
  7.     el.attachEvent( "on" + type, fn );
  8.   } else {
  9.     var old = el["on" + type];
  10.     el["on" + type] = function() {old();fn();};
  11.   }
  12.  
  13. }
  14.  
  15. addEvent(window, 'load', startInit);
  16.  
  17.     SpawEditor.prototype.onLoadHookup = function()
  18.     {
  19.          addEvent(window,'load', new Function(this.name+'_obj.initialize()') );
  20.     }
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  

(Отредактировано автором: 15 Апреля, 2011 - 11:47:54)



-----
Truly yours, Sasha.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB