Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.02.2011, 00:32
Аспирант
Отправить личное сообщение для revvo Посмотреть профиль Найти все сообщения от revvo
 
Регистрация: 17.01.2011
Сообщений: 38

Событие windows.onload
Здравствуйте.

Такой у меня к вам вопрос. Мне нужно чтобы функция вызывалась при загрузке страницы. Но, событие window.onload уже определено в файле script.js. В этом файле находятся скрипты общие для всех страниц сайта.
Вот так выглядит это событие (находится в последней строке файла): window.onload = Custom.init;

Если я переписываю так:
window.onload = function() { Custom.init(); fillGrades(); }
то все работает, но на других страницах, где нет функции fillGrades (она есть только в одной странице), это вызывает ошибку (если посмотреть в Консоль ошибок), хотя все работает нормально, и для юзера никак не заметно. Но я думаю что это не есть гуд, и потенциально опасно. Как еще можно повешать эту функцию на загрузку?

Все написано на чистом Яваскрипте, подключать jQuery только ради события ready не хотелось бы.

В этой функции fillGrades() все специфично для данной страницы и помещать ее в общий файл будет проблематично, это вызовет кучу ошибок. Если только как-то определять что загружен именно нужный файл и тогда эту функцию вызывать, это возможно?
Ответить с цитированием
  #2 (permalink)  
Старый 21.02.2011, 02:13
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Читать: http://javascript.ru/tutorial/events/comparison
Юзать: http://javascript.ru/tutorial/events/crossbrowser
Ответить с цитированием
  #3 (permalink)  
Старый 06.08.2013, 18:18
Новичок на форуме
Отправить личное сообщение для LaunchMyRocketsAway Посмотреть профиль Найти все сообщения от LaunchMyRocketsAway
 
Регистрация: 06.08.2013
Сообщений: 1

var _init = []; // массив вызываемых функций

window.onload = function()
{
    for ( var i in _init )
    {
        if ( typeof( _init[i] ) == 'function' ) _init[i](); // вызываем подряд все функции из _init
    }
}

_init.push( Custom.init ); // загоняем в _init нужные функции
_init.push( fillGrades );  // при событии onload они все выполнятся
Ответить с цитированием
  #4 (permalink)  
Старый 07.08.2013, 08:14
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

window.onload = function() {
   Custom.init();
   if(window.fillGrades) fillGrades();
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
событие на динам. элемент (jQery, Ajax, php) kost_ik jQuery 2 06.11.2010 12:16
событие onclick chelsea Общие вопросы Javascript 1 17.09.2010 11:31
Плагин JQuery tabs как подписаться нв событие перекл.вкладок xela1980 jQuery 6 15.12.2009 18:00
вызвать принудительно событие olgatcpip Общие вопросы Javascript 5 13.11.2009 11:07
какое событие возникает во время формирования html IT-AleX Events/DOM/Window 2 20.02.2009 16:13