var script = document.createElement("script");
script.setAttribute("type", "text/javascript");
script.setAttribute("src", "url to the script file here");
document.getElementsByTagName("head")[0].appendChild(script);
는 내가 전에 스크립트 "온로드"를보고, 나는 그런 이벤트를 찾는 기억하지 않습니다. 나는 타이머 기반의 js 코드를 작성하여 다운로드되는 스크립트에서 정의 된 것으로 예상되는 객체를 자주 확인했다. 따라서 스크립트 태그를 삽입 한 코드 내에서 아무것도하지 않는 것이 좋습니다. 스크립트가 준비되면 완벽하게 시간을 할애 할 수 있습니다. 스크립트 자체에 "래핑되지 않은"코드를 추가하십시오. (예 : alert("I, the script, loaded and I'm ready with these functions that I provide");
그리고 스크립트는 다운로드 할 것인지 또는 어떤 이유로 든 사용할 수 없음, 연결 오류, 서버 오류 등 "오류 발생"사례는 없습니다. [다운로드 ], 스크립트가 실행/사용되는 동안 발생할 수있는 오류는 실제로 전송 관련이 아닙니다 (이러한 오류는 다른 스크립트 오류를 처리하는 것과 같은 방법으로 처리해야합니다). 따라서 여기에 "onerror"가있는 의도는 아닙니다. 적합 (IMO). +1 :
편집 : 다운로드하지 않으면 실행되지 않습니다. , 당신은 그것을 사용할 수 없을 것입니다. 클라이언트 코드가 실제로 대기 중이면 타이머 기반 타임 아웃 논리를 작성해야합니다. 예를 들어, 위의 "추가 머리에"줄 끝에서, 같은 것을 할 :
window.setTimeout(function()
{
// object/variable "newScriptObject" is defined in the new script
if(!newScript)
{
// script timed out; let's proceed with plan B
}
else
{
// script ready, proceed as planned;
// although, like I said, I think it's more precise if you execute this code in your myscript.js instead - as maybe that code will be ready before the 5 sec assumed here
// alternatively, use window.setInterval to check for objects defined this script every so milliseconds, in which case, when you find the script, don't forget to stop that timer (window.clearInterval)
}
}, 5000); // wait 5 sec for the new script
마지막으로,이 맥락에서 "부분 다운로드 '같은 것은 존재하지 않는다. 정상적인 브라우저는 완전히 다운로드되지 않았을뿐만 아니라 구문 분석 (해석) 된 스크립트의 실행을 시작하지 않습니다. "해석 된"부분은 어딘가에 중괄호를 놓치거나 다른 구문 오류로 인해 관련없는 위치를 가리키는 JS 오류가 나타나는 이유입니다. 이러한 문법 오류는 코드 블록을 완전히 "이동"(일종의)하기 때문에 적어도 무엇이 무엇인지 파악할 수 없기 때문에 중괄호가 없다는 것이이 범주에 속합니다. 주제를 조금 벗어나서 죄송합니다.
http://stackoverflow.com/questions/4117712/add-script-tag-within-head-tag-within-head-tag-with-head-tag-in-servercontrol-asp-net – Neha