.js
파일을 동 기적 으로 호출 한 다음 즉시 사용할 수 있습니까?
<script type="text/javascript">
var head = document.getElementsByTagName('head').item(0);
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'http://mysite/my.js');
head.appendChild(script);
myFunction(); // Fails because it hasn't loaded from my.js yet.
window.onload = function() {
// Works most of the time but not all of the time.
// Especially if my.js injects another script that contains myFunction().
myFunction();
};
</script>
이것은 간단합니다. 내 구현에서 createElement 물건은 함수에 있습니다. 컨트롤을 반환하기 전에 특정 변수가 인스턴스화되었는지 확인할 수있는 함수에 무언가를 추가하는 것에 대해 생각했습니다. 그러나 내가 제어 할 수없는 다른 사이트의 js를 포함 할 때해야 할 일에 대한 문제가 여전히 있습니다.
생각?
편집하다:
무슨 일이 일어나고 있는지에 대한 좋은 설명을 제공하기 때문에 지금은 최선의 답변을 수락했습니다. 그러나 누군가 이것을 개선하는 방법에 대한 제안이 있다면 나는 그들에게 열려 있습니다. 여기 제가하고 싶은 일의 예가 있습니다.
// Include() is a custom function to import js.
Include('my1.js');
Include('my2.js');
myFunc1('blarg');
myFunc2('bleet');
내부를 너무 많이 알지 않고 "이 모듈을 사용하고 싶습니다. 이제 코드를 사용할 것입니다."라고 말할 수 있기를 원합니다.
eval()
모든 파일이 주어진 순서대로, 그렇지 않으면 응답을 저장합니다).