본문 바로가기

프로그램/dom+script+jquery

IE 7 버전에서 서로 다른 도메인간 IFRAME RESIZE

타 도메인에 IFrame 제어하는 부분을 해결하기 위해서는
우선 도메인이 같아야만 IFrame을 제어를 할수가 있습니다

최상위(parent.parent) 페이지를 A라고 보고 차상위(parent) 페이지를 B라고 봤을때
A페이지와 B페이지는 도메인이 다르므로 B에서 A페이지로의 접근은 불가능 합니다

때문에 B페이지에서는 우선 B페이지의 창의 크기를 재야 합니다
그리고 B페이지에서는 다시 기능성 IFrame으로 삽입을 시켜야 하는데

이때 IFrame을 C라고 보고..


C의 실질적인 기능은 B페이지에서 받은 height로 받은 값(파라미터로 B에서 전송 받습니다)을 가지고
A프레임으로의 접근을 합니다

방법은 parent.parent.getElementById("B IFrame의 ID").height="B프레임으로 받은 높이값"

A도메인에 파일 생성

js 파일

document.writeln("<" + "script language='JavaScript'" + ">");
document.writeln("function iframe_reset(){");
document.writeln(" var o_frame = document.getElementById('frm_hidden');");
document.writeln(" o_frame.src = 'http://underroom.com/resize.htm?height=' + document.body.scrollHeight;");
document.writeln("}");
document.writeln("window.attachEvent('onload', iframe_reset);");
document.writeln("<" + "/script" + ">");
document.writeln("<iframe id='frm_hidden' src='' height='0' width='0'></iframe>");

 

 

o_frame.src => resize 할 도메인의 resize 함수 구현한 페이지.

o_frame.src 페이지의 구현될 소스

C 페이지

<script language="Javascript">
 function iframe_reset(){
    parent.parent.parent.document.getElementById("cp_page").height="${hsize}"; 
 }
</script>

 

 

요청할 도메인 페이지에 추가

B 도메인에 들어갈 소스

<script language="javascript" src="js 파일 경로"></script>

'프로그램 > dom+script+jquery' 카테고리의 다른 글

jquery 유효성 채크  (1) 2013.03.08
jquery 날짜 입력  (0) 2013.03.08
jquery selectbox  (0) 2013.03.08
[contentWindow] iframe 접근 방법  (0) 2010.10.01