2011-05-10 2 views
10

나는 및 태그를 기반으로하는 accient 프로젝트에서 작업 중입니다. 나는 아이 프레임에 자바 스크립트 함수를 지정하는 방법은 다음과자식에 지정된 javascript 함수를 호출하는 방법 <frame>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="en"> 
<head> 
</head> 
<frameset rows="75px,*" frameborder="0"> 
    <frame name="frame1" src="frames/frame1.html"> 
    <frameset class="child_frameset"> 
     <frame name="frame3" src="frames/frame3.html"> 
    </frameset> 
</frameset> 
</html> 

(frame3.html) :

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <script type="text/javascript"> 
     function helloWorld(){ 
      alert('hello world!'); 
     } 
    </script> 
</head> 
<body> 
    <h1>I'm frame 3</h1> 
</body> 
</html> 

다음은 상위 페이지 (index.html을)의 일반적인 HTML 구조입니다 내 임무는 helloWorld() 기능을 호출하는 것입니다. 어떻게해야합니까?
미리 감사드립니다. contentWindow, contentDocument에 대한

document.getElementById('frame3').contentWindow.helloWorld(); 
+0

부모로부터 기능을 호출하려고합니까? – Ibu

+0

예! 부모 페이지 (index.html)에서 ** helloWorld (**) 함수를 호출하려고합니다. – LoomyBear

답변

20

당신은 이런 식으로 할 수 있습니다.

var siblingFrame; 
if (parent.document.getElementById('siblingFrameId').contentWindow){ 
    siblingFrame = parent.document.getElementById('siblingFrameId').contentWindow; 
} else if (parent.document.getElementById('siblingFrameId').contentDocument){ 
    siblingFrame = parent.document.getElementById('siblingFrameId').contentDocument; 
} else if (parent.document.getElementById('siblingFrameId')) { 
    siblingFrame = parent.document.getElementById('siblingFrameId'); 
} 

siblingFrame.helloWorld(); 
+0

+1 프레임을 ID로 먼저 지정하는 것이 좋습니다. – lonesomeday

+2

예제의 프레임에는 id가 없으므로'getElementById'는 실제로 적절하지 않습니다. 그냥 이름으로'window.frames [ "frame3"]. helloWorld()'를 대신 사용하십시오. – RoToRa

+0

가장 빠른 답장을위한 고맙습니다.이 모든 것을 시도했지만 콘솔은 나를 돌려줍니다 ** window.frames.frame3은 정의되지 않았습니다 ** 그리고 ** document.getElementById ("frame3")는 null입니다 ** 프레임 id = "frame3") ... 어떤 생각? – LoomyBear

1

확인 및 프레임 객체를 얻고 호출을 수행 :

1

당신은 childframe에서 메소드를 호출 할 수

N, m은 당신이 문서 하나의 프레임 프레임 [m] 부분을 제거하고 작업 완수를 0.If부터 정수
window.frames[n].frames[m].methodName() 

.

또 다른 한가지는 시행 착오를 거쳐 정확한 프레임 번호 과 방법을 찾으십시오. 희망이 도움이

관련 문제