2010-02-03 3 views
0

프로그래밍 방식으로 만든 iFrame에서 JavaScript 함수 외부의 JavaScript 함수에 액세스하려고합니다. 몇 가지 방법을 시도했지만 성공하지 못했습니다. L ike window.frames['frameid']프로그래밍 방식으로 iFrame에서 JavaScript 함수에 액세스

정확한 구문을 제공해 주시겠습니까?

+3

프레임 페이지와 상위 페이지가 모두 동일한 도메인에 있습니까? –

답변

0

여기에 귀하의 의견에 따라 더 적절한 예이다)

메인 페이지

<html> 
<head> 
    <title>Main Page</title> 
</head> 
<body> 
    <iframe src="iframe.html"></iframe> 
    <script> 
     var receiver = { 
      listen:function(msg){ 
      alert(msg); 
      } 
     }; 
    </script> 
</body> 
</html> 

iframe이 페이지 : 유사한 출력

을 가진 iframe.html 하지만, 될 수있는 JSP
<html> 
<head> 
    <title>iframe page</title> 
    <script src="external.js"></script> 
</head> 
<body> 
    <!-- some content here --> 
    <script> 
     externalFunction('hello', window); 
    </script> 
</body> 
</html> 

JS 파일 : external.js

function externalFunction(msg, w){ 
    w.parent.receiver.listen(msg); 
} 

3 개의 파일을 같은 디렉토리에두고 기본 페이지를 엽니 다. "hello"라는 팝업이 나타납니다.

+0

사실, ExtJS 프레임 워크를 사용하고 있습니다. 나는 iFrame 안에 JSP를 가지고 있는데, 기본적으로 JS 파일 안에있는 자바 스크립트 함수에서 JSP로 자바 스크립트 함수를 호출하고 싶습니다. 언급 한 옵션이 효과가 있습니까? 제발 분명히 해주세요. – keiv

+0

JSP를로드 할 때 반대쪽을 만들면 부모 개체를 호출합니다. 그렇게하려면 BODY 태그 맨 끝에 스크립트 태그를 추가하십시오. 이 스크립트에서 parent.receiver.listen (msg)과 같은 명령을 추가하십시오. 개체 "수신기"는 전역 개체로 존재해야하며 "수신 대기"기능을 가지고 "메시지"는 해당 기능에 보내는 매개 변수입니다. – Mic

+0

마이크, 부모 JS 파일에 함수를 추가했습니다. var receiver = {listen : function() {alert ('parent'); }} 추가 - parent.receiver.listen(); JSP에있는 BODY 태그의 script 태그에 있습니다. 부모 JS 파일에서 함수 호출을 호출하는 onClick 단추가 있습니다. 그러나 작동하지 않는 것 같습니다. 제가 말씀 드린대로 저에게 알려 주시면 알려주세요. 하지만 JSP에서 외부에서 'test'함수를 호출하고 싶습니다. 감사합니다. – keiv

0

예, 같은 도메인에 있습니다. 사실, ExtJS 프레임 워크를 사용하고 있습니다. 나는 iFrame 안에 JSP를 가지고 있는데, 기본적으로 JS 파일 안에있는 자바 스크립트 함수에서 JSP로 자바 스크립트 함수를 호출하고 싶습니다.

관련 문제