2012-08-12 3 views
1

jquery 블록 내부에서 경고를 주면 출력이 전혀 표시되지 않는 이유는 무엇입니까? 함수는 alert()가 내부에있을 때만 실행됩니다.

<script type="text/javascript"> 
(function map() { 
var test = document.createElement('script'); 
    test.type = 'text/javascript'; 
    test.async = true; 
test.src = 'myjsfile.js'; 
var s = document.getElementsByTagName('script')[0]; 
    s.parentNode.insertBefore(test, s); 
}); 
    </script> 

나는 플러그인을 만들려고하고 있고 스크립트가 myjsfile.js를 호출하고 난 위의 코드 내부에() 경고 추가하는 경우가 아니라 내부의 기능을 수행합니다.

+6

코드를 게시하여 디버깅 할 수 있습니까? –

+0

이것이 jQuery와 어떤 관련이 있습니까? –

+2

어디에서나 함수를 호출하고 있습니까? 왜 주변에 괄호가 있습니까? –

답변

1

문서의 첫 번째 스크립트 태그입니다 보여 코드, 나는 어쩌면 문제의 원인이 볼 수있는 경우 :

var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(test, s); 

왜 머리 또는 몸에 직접 추가하지를? 제 의견으로는 더 간단합니다.

(document.getElementsByTagName('head')[0] 
|| document.getElementsByTagName('body')[0]).appendChild(test); 

또한 실제로 함수를 호출하지 않기 때문에 결과가 표시되지 않을 수도 있습니다. map 이미 jQuery를 내 기능입니다, 조심

<script type="text/javascript"> 
    (function map() { 
     // Your code here 
    })(); // Add() to call your function 

    // Or, just call it the old fashioned way when you're done. 
    map(); 
</script> 

또 다른 일을, 그래서 당신의 이름 공간에주의 당신은 당신의 함수를 호출하려고 할 방법이보십시오.

2

나중에 실행하거나 스스로 실행하는 함수를 만들려고하는지 잘 모르겠습니다. 나중에 실행을위한 기능을 만들려고하는 경우

(function() { 
    alert("hello"); 
})(); 

:

function myfunction() { 
    alert("hello"); 
} 

myfunction();// This is the "later" execution 

희망이 도움이

여기에 기능을 실행 자체를 수행하려는 경우는 구문입니다 !

관련 문제