Module.registerInitializationFunction = function(f) {
// Сохранить функцию в массиве функций инициализации
Module._initfuncs.push(f);
// Если обработчик события onload еще не зарегистрирован, сделать это сейчас.
Module._registerEventHandler();
}
// Данная функция вызывает зарегистрированные функции инициализации.
// В клиентском JavaScript она автоматически вызывается по окончании загрузки документа.
// В других контекстах исполнения может потребоваться вызвать эту функцию явно.
Module.runInitializationFunctions = function() {
// Запустить каждую из функций, перехватывая и игнорируя исключения,
// чтобы ошибка в одном модуле не помешала инициализироваться другим модулям.
for(var i = 0; i < Module._initfuncs.length; i++) {
try { Module._initfuncs[i](); }
catch(e) { /* игнорировать исключения */}
}
// Уничтожить массив, т. к. такие функции вызываются всего один раз.
Module._initfuncs.length = 0;
}
// Частный массив, где хранятся функции инициализации для последующего вызова
Module._initfuncs = [];
// Если модуль был загружен вебброузером, эта частная функция регистрируется
// как обработчик события onload, чтобы иметь возможность запустить все функции
// инициализации по окончании загрузки всех модулей.
// Она не допускает обращение к себе более одного раза.
Module._registerEventHandler = function() {
var clientside = // Проверить хорошо известные клиентские свойства
"window" in Module.globalNamespace &&
"navigator" in window;
if (clientside) {
if (window.addEventListener) { // Регистрация по стандарту W3C DOM
window.addEventListener("load", Module.runInitializationFunctions,
false);
}
else if (window.attachEvent) { // Регистрация в IE5+
window.attachEvent("onload", Module.runInitializationFunctions);
}
else {
// IE4 и более старые броузеры, если тег <body> определяет атрибут onload,
// этот обработчиксобытия будет перекрыт и никогда не будет вызван.
window.onload = Module.runInitializationFunctions;
}
}
// Функция перекрывает сама себя пустой функцией,
// чтобы предотвратить возможность повторного вызова.
Module._registerEventHandler = function() {};
Если надо могу убрать коменты и переписать весь модуль в один пост