2015-01-26 5 views
0

저는 JavaScript에 비해 비교적 새로운 편이어서 다소 사소한 것일 수 있습니다. 그러나 나는이 질문에 대한 답을 찾지 못하고있다.javascript에서 내부적으로 외부 함수를 호출하는 방법은 무엇입니까?

foo()라는 함수가있는 JavaScript 파일 (bar.js)이 있다고 가정 해보십시오. 스크립트 태그 안에이 함수 (foo)를 호출하고 싶습니다. 나는 그렇게 일하고 싶습니다.

<script type="text/javascript" src="bar.js"> 
    foo(); 
</script> 

이 기능을 사용할 수 없습니다. 내 브라우저에서 JavaScript 콘솔을 실행했으며 수행중인 것으로 보이는 것은 아무 것도 아닙니다. 구문 오류 또는 아무것도 없습니다.

위의 스크립트 태그를 사용하면 버튼 클릭과 비슷한 기능을 실행할 수 있습니다.

<button type="button" onclick="foo();">Click Me</button> 

나는이 방법으로 할 수 있지만 실제 상황에서는 버튼 클릭시 호출되는 함수에 매개 변수를 전달해야합니다. 나는 그것들을 인정할 수 없다. 범위와 관련이 있다고 확신합니다.

나는이 그렇게 같았다 시도하는 방법 ...

<script type="text/javascript" src="bar.js"> 
    var a = "blah"; 
    var b = "blab"; 
</script> 

.... (some more html) 

<button type="button" onclick="foo(a,b);">Click me </button> 

여기에 나는이 정의되지 않은 것을 얻을. 그게 내가 범위 문제라고 생각하게 만든다. 스크립트 태그는 head 섹션에 있고 버튼은 body 섹션에 있습니다. 전역 데이터를 만들기 위해 head 태그와 body 태그 바깥에 스크립트 태그를 넣을 수 있습니까?

미리 도움을 주셔서 감사합니다.

이전에 jsfiddle를 사용 해본 적이 없어서 작동하기가 어려워서 여기에 예제 코드를 게시 할 것입니다.

<html> 
    <head> 
    <script type="text/javascript" src="bar.js"> 
    </script> 
    <!--From what yall say I should have another script 
     tag here for anything else. Say some variable?--> 
    <script type="text/javascript"> 
     var a = "hello"; 
     var b = "text"; 
    </script> 
    </head> 
    <body> 
    <!--This should work now?--> 
    <button type="button" onclick="foo(b,a)"> 
     Click me 
    </button> 
    </body> 
</html> 

bar.js 내용 :

function foo(id,string){ 
    document.getElementById(id).innerHTML = string; 
} 

나는이 작업을 얻었다. 감사합니다. 다음

<script type="text/javascript" src="bar.js"></script> 

다른 스크립트 태그 에 전화 : 당신의 예에서

<script type="text/javascript"> foo(); </script> 

당신이이 개념을 혼합 한 것 같다

+0

jsfiddle에서 시도한 코드를 게시 할 수 있습니까? – Bioto

+1

관련 : [SRC 속성을 사용하는 인라인 스크립트] (0120-13756) –

답변

2

먼저 함수를 포함하는 자바 스크립트를 포함해야 잘못된 단일 스크립트 태그에 넣으십시오. 외부 자바 스크립트 파일을 포함시키고 스크립트 태그 본문에 코드를 작성하십시오. specification 따르면

:

스크립트는 외부 파일의 스크립트 요소 또는 의 내용 내에서 정의 될 수있다. src 속성이 설정되지 않은 경우 사용자 에이전트는 요소의 내용을 스크립트로 해석해야합니다. src에 URI 값이 있으면 사용 도구는 요소의 내용을 무시하고 URI를 통해 스크립트를 검색해야합니다.

그래서 기본적으로 이러한 상황을 피하고 외부 파일을 포함하고 인라인 js를 작성하기 위해 별도의 스크립트 태그를 사용해야합니다.

+0

동일한 스크립트 태그를 링크하거나 호출 할 수 없습니다. ? –

+1

버튼에서 호출하는 버전이 작동하지 않는 이유는 설명하지 않습니다. – Quentin

+1

아니요, 할 수 없습니다. 2 개의 스크립트 태그로이 작업을 수행해야합니다. –

관련 문제