2014-02-13 3 views
3

나는이는 head 태그에 사용로드 외부 온로드()

<script src="js/lightbox.js"></script> 

는 헤더를이를 제거하고 onload()으로이 파일을로드 할 수 있습니까?

<body onload="...">...</body> 

참고 : 이것은 기능이 아니며 몇 가지 기능이있는 외부 js 파일입니다.

감사합니다.

+0

JS 태그에 "비동기"및 "지연"속성을 추가하기 만하면됩니다. 예 : "" 그 안에 함수를 호출하십시오. – Nirus

답변

2
onload="blabla();" 

function blabla() 
{ 
    $.getScript('url to your js file', function(data, textStatus, jqxhr) { 
     // do some stuff after script is loaded 
    }); 
} 

당신은

Source

4
<script> 
function loadJS(src, callback) { 
    var s = document.createElement('script'); 
    s.src = src; 
    s.async = true; 
    s.onreadystatechange = s.onload = function() { 
     var state = s.readyState; 
     if (!callback.done && (!state || /loaded|complete/.test(state))) { 
      callback.done = true; 
      callback(); 
     } 
    }; 
    document.getElementsByTagName('head')[0].appendChild(s); 
} 
loadJS('/script/script.js', function() { 
    // put your code here to run after script is loaded 
}); 
</script> 

난 아직도 당신이 케이크를 많이 가지고 대신으로 그것의 더 나은 .getScript을 jQuery를에로드하고 $를 사용하는 생각 여기에서 자세히 알아볼 수 있습니다. 당신이 jQuery를없이하고 싶은 경우

function addScript(filename) 
{ 
var scriptBlock=document.createElement('script') 
scriptBlock.setAttribute("type","text/javascript") 
scriptBlock.setAttribute("src", filename) 
document.getElementsByTagName("head")[0].appendChild(scriptBlock) 
} 

를 사용하고 <body onload="addScript('myFile.js')"로 전화, 신체 부하

2

에서이 작업을 호출 할 수 있습니다. 로드 할 파일이 여러 개인 경우 원하는 모든 파일을 추가하는 래퍼를 넣을 수 있습니다.

0
 

var JS = { 
    load: function(src, callback) { 
    var script = document.createElement('script'), 
     loaded; 
    script.setAttribute('src', src); 
    if (callback) { 
     script.onreadystatechange = script.onload = function() { 
     if (!loaded) { 
      callback(); 
     } 
     loaded = true; 
     }; 
    } 
    document.getElementsByTagName('head')[0].appendChild(script); 
    } 
}; 

// Example with callback 

JS.load("http://www.someawesomedomain.com/some.js", function() { 
    //Do your thing. 
});