Показать сообщение отдельно
  #1 (permalink)  
Старый 03.11.2010, 14:23
Интересующийся
Отправить личное сообщение для vandy3 Посмотреть профиль Найти все сообщения от vandy3
 
Регистрация: 28.10.2010
Сообщений: 14

Функция проверки onDomReady. Не могу разобраться с кодом
Здравствуйте.
Читаю книгу по JS. В книге есть пример написания метода проверки загружена дом модель или нет.

var $ = function() {};

$.prototype.onDomReady = function(callback){
    if (document.addEventListener) { 
        document.addEventListener("DOMContentLoaded", callback, false); 
    } else { 
        if(document.body && document.body.lastChild){ 
            callback(); 
        } else { 
            return setTimeout(arguments.callee, 0); 
        } 
    } 
} 

$ = new $(); 

$.onDomReady(function() { 
    alert("The DOM is ready!"); 
});

Слегка изменил код функции $.prototype.onDomReady:

$.prototype.onDomReady = function ( callback ) {
  if ( document.body && document.body.lastChild ) {
    callback();
 }
  else {
    alert ( "settimeout" );
    return setTimeout ( arguments.callee, 100 );
 }
}


Открывая страницу в FireFox, после одного или более alert "settimeout", FireBug выдает ошибку, что callback не является функцией, IE так же выдает ошибку, что необходим объект.

Не понимаю, почему в таймер не передается аргумент в виде ссылки на функцию callback?
Ответить с цитированием