상세 컨텐츠

본문 제목

iframe 의 윈도우객체에 접근하기 contentWindow , contentDocument

IT공부방/HTML5, CSS

by 동해둘리 2016. 7. 28. 09:53

본문

반응형

contentWindow property는 frame 이나 iframe 에 의해 생성된 Window 객체를 말한다

이를 통하여 생성된 frame 에 접근하고, 해당 윈도우에 포함된 document 에 접근가능하며,

또한, document 내의 각 element 에도 접근할 수 있다.


<body>

<iframe id="iframe_id" src="b.html">

</iframe>

</body>

 


a페이지 내에 ifrmae 이 있고, 그 iframe 에 b.html 페이지가 로드된 경우, 아래와 같이 접근이 가능하다. 
document.getElementById('iframe_id').contentWindow.document

.getElementById("element_id")

 또는,  

 

document.getElementById('iframe_id').contentWindow.document.폼아이디.엘리먼트아이디.value

w3schools 에서 제공하는 Try it Editor 가 바로 이런방식으로 프레임객체를 사용하고 있다.


 



이때, 주의할 사항이 있다.
Internet Explorer 8 (그 이상)은 !DOCTYPE이 명시된 경우만 contentDocument property를 지원한다.IE의 이전 버전에 대해, contentWindow property를 사용한다.
그러그로, 아래와 같이 조건에 따라 코딩을 하게되면, Internet Explorer 버전과 상관없이 해당 Content 에 접근할 수 있게된다.
var ifrw = (ifr.contentWindow) ? ifr.contentWindow : (ifr.contentDocument.document) ? ifr.contentDocument.document : ifr.contentDocument;
1) 

contentWindow 가 있을경우 contentWindow 를 반환한다.

2) contentWindow 가 없을경우 contentDocument.document 를 반환한다.

3) 

contentDocument.document 가 없을경우 contentDocument 를 반환한다.

 

 

 

반응형

관련글 더보기

댓글 영역