이런저런 사정이 있어서 jQuery 라이브러리가 로드되었는지 판별하여,

로드되지 않았을 경우에만 동적으로 로딩할 일이 생겼음.



// jquery를 로딩하고 로딩완료시 callback 실행

function get_jquery_and_go(callback)

{

    // jQuery가 이미 로드되어 있으면 그냥 callback() 실행

    if (typeof window.jQuery != 'undefined') {

        callback();

    }

    // jQuery가 로드되어 있지 않음

    else {

        // <script> element를 하나 생성

        var script = document.createElement('script');

        script.type = 'text/javascript';


        // jQuery 로딩 완료 후 callback() 실행

        // IE

        if (script.readyState) {

            script.onreadystatechange = function(){

                if (script.readyState=='loaded' || script.readyState=='complete') {

                    script.onreadystatechange = null;

                    callback();

                }

            }

        }

        // 기타 브라우저

        else {

            script.onload = function(){

                callback();

            }

        }


        // jQuery 로딩

        script.src = '//code.jquery.com/jquery-latest.min.js';

        document.getElementsByTagName('head')[0].appendChild(script);

    }

}


// 테스트

document.onload = function(){

    get_jquery_and_go(function(){

        // 이 시점에 jquery 로딩 완료

        alert('jquery 준비 끝');

    });

});












Posted by bloodguy
,