2012-04-19 2 views
0

jQuery가 페이지에 있는지 확인해야하는 경우가 있는데, 그렇지 않으면로드해야합니다. 스크립트 태그를 만들고 외부 jQuery 라이브러리를 참조한다. 나머지 스크립트를 계속하기 전에 라이브러리가 페이지에로드 될 때까지 기다리는 방법은 무엇입니까?페이지가 처음으로로드 된 후 jQuery 라이브러리로드

UPDATE :

if (typeof jQuery === 'undefined') { 
    var j = document.createElement('SCRIPT'); 
    j.type = 'text/javascript'; 
    j.src = '//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'; 
    document.getElementsByTagName('head')[0].appendChild(j); 
    j.onload = function() { 
     var section = document.createElement('DIV'); 
     section.setAttribute('style', 'height:300px; width:250px; position: fixed; right: 0px; top: 100px;z-index: 9999; border-style:solid;border-width:1px;'); 
     section.innerHTML = '<p>steps</p><textarea name="steps"></textarea><p>expected results</p><textarea name="results"></textarea><p><input type="button" name="submit" value="add test case" /></p>'; 

     document.getElementsByTagName('body')[0].appendChild(section); 
    }; 
} 

답변

6
<script type="text/javascript"> 
    if(typeof jQuery === 'undefined') 
     document.write('<sc'+'ript type="text/javascript" src="jquery.js"></scrip'++'t>'); 
    window.onload = function(){ 
     // jquery should be present here 
    }); 
</script> 
+1

왜''

+0

돔 구문 분석기가 문자열 ''

1

로 설정할 수 있습니다 당신은 JQuery와 있는지 확인 할 수 있습니다 : 그것은 기온의 제안 이후의 모습을 Heres

이 같은로드되었습니다

필요한 경우 6,
window.onload = function(){ 
    if(typeof jQuery == "undefined"){ 
      // jquery is not available 
    } 
} 

그리고 JQuery와로드되지 않은 경우 내가 http://requirejs.org/

0

jQuery를 파일을 inlcude하는 requirejs 같은 자바 스크립트 로더를 사용하는 것이 좋습니다 것입니다 만, 당신은 확인해야합니다 그것은 첫째

function afterLoad(){ 
    if(typeof(jQuery)!=='undefined') 
    return; 

    var element1 = document.createElement(“script”); 
    element1.src = “pointToYourjQueryFile.js”; 
    element1.type=”text/javascript”; 
    document.getElementsByTagName(“head”)[0].appendChild(element1); 
} 

이 방법으로 윈도우로드에서이 함수를 호출하면 ...

<body onload="afterLoad()"?> 
0
window.onload = function(){ 
    var script,head; 
    if(!jQuery){ 
     script = document.createElement('script'); 
     document.getElementsByTagName('head')[0].appendChild(script); 
     script.onload = function(){ 
      alert('jQuery loaded'); 
     } 
     script.src = 'path_to_jquery'; 
    } 
} 
0

모더 나이저는이 줄을 사용

<script>window.jQuery || document.write('<script src="./js/libs/jquery-1.6.2.min.js"><\/script>')</script> 

을하지만 document.write를가 안전하지 않은 것으로 간주됩니다. 그러므로 내가 게시 한 것과 연결 것 :

if(!window.jQuery) 
{ 
    var element1 = document.createElement(“script”); 
    element1.src = “somefile.js”; 
    element1.type=”text/javascript”; 
    document.getElementsByTagName(“head”)[0].appendChild(element1); 
} 

를 구글이 사용하는 반면에 : 이미 웹 사이트에 기존의 첫 번째 태그에 스크립트를 추가

(function() { 
    if(window.jQuery) return; 

    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; 
    po.src = 'some.js'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); 
})(); 

합니다. 하나 이상의 < 스크립트가있는 경우 사이트에서이 스크립트를 사용하십시오. 내가 아는 바로는 최상의 솔루션으로 간주됩니다.

관련 문제