Показать сообщение отдельно
  #1 (permalink)  
Старый 23.11.2014, 02:45
Интересующийся
Отправить личное сообщение для Kot137 Посмотреть профиль Найти все сообщения от Kot137
 
Регистрация: 23.11.2013
Сообщений: 10

Динамичская подгрузка скриптов - событие завершения загрузки?
Использую общедоступный подгрузчик скриптов/CSS:
Код:
dynjs={
    type: {js: "js", css: "css", csstxt: "csstxt"},
    load: function (url_, type_){  
        if (typeof(type_) == "undefined"){type_ = dynjs.type.js;}  
        var is_exist=false;  
        var tag = type_ == dynjs.type.js ? "script" :
            type_ == dynjs.type.css ? "link" : "style";  
        var objects=document.getElementsByTagName(tag);  
        var src = type_ == dynjs.type.js ? "src" : "href";  
        for(var i=0; i < objects.length; i++){  
            var elem=objects[i];    
            if(elem.getAttribute(src) == url_){is_exist=true;}
        }  
        if(is_exist){return;}  
        var _elem=document.createElement(tag);  
        var type = type_ == dynjs.type.js ?
            "text/javascript" : "text/css";
        _elem.setAttribute("type", type);  
        _elem.setAttribute(src, url_);  
        if (type_ == dynjs.type.css){
            _elem.setAttribute("rel", "Stylesheet");
        }
        if (type_ == dynjs.type.csstxt){
            if (typeof(_elem.styleSheet) != "undefined"){
                _elem.styleSheet.cssText = url_;
            } else if (typeof(_elem.innerText) != "undefined"){
                _elem.innerText = url_;
            } else {_elem.innerHTML = url_;}
        }
        document.getElementsByTagName("head")[0].appendChild(_elem);
    }
};
загрузка
Код:
dynjs.load("jquery.min.js", dynjs.type.js);
Задача - отловить событие полной загрузки скрипта. Ситуация такая: в результате неких действий на странице возникает задача выполникть код на JQuery, а перед этим подгрузить динамически jquery.min.js. Если код выполнять сразу - будет ошибка неопределенной $. Сейчас пользуюсь костылем: ставлю таймаут.
Ответить с цитированием