묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
아이프레임 자동으로 높이 조절하는 소스.....문제점이 있는 것 같네요
2004.12.29 21:21
http://www.nzeo.com/bbs/zboard.php?id=p_javascript&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=아이프레임&select_arrange=headnum&desc=asc&no=570beMax님의 소스를 사용해서 제로보드 띄워 보았는데요... 아주 조절도 잘 되고 거의 흠잡을데가 없던데... 글쓰기 모드에서 글 쓰는 칸 크기를 늘일 수 있잖아요?(보통 ▼<--요 버튼을 누르죠) 이렇게 칸을 늘이게 되면 페이지를 리(Re)로드 하지 않기 때문에 아이프레임 크기가 제로보드 크기에 맞춰서 따라가지를 않더군요... 이것까지 해결하는 것은 좀 무리일까요... 이것도 꼭 해결하고 싶은데...ㅡ.ㅜ;; 사실 방금 beMax 님 소스 발견하고 나서 노프레임 홈페에서 아이프레임 홈페이지로 다 바꾸었거든요 ㅡ.ㅜ;; 이제 완전 아이프레임 체제로 가려구요;; 이 문제 해결방법 아시는 분 안 계시나요???
- beMax님 소스 링크 시켜놓습니다.
- beMax님 소스 링크 시켜놓습니다.
댓글 3
-
beMax
2004.12.30 09:24
-
beMax
2004.12.30 09:36
하나 빠진것이 있습니다.
만들면서 깜빡했는데요..
프레임속의 문서에 이미 onclick 이벤트가 정의되 있다면 지금 스크립트는 이전 이벤트가 사라질겁니다.
그래서 조금 수정했습니다. 자세한 설명은 원본 내용에 새로 수정해서 넣었구요..
innerBody.onclick = function(){ resizeFrame(iframeObj, 1); };
이부분을
oldEvent = innerBody.onclick;
innerBody.onclick = function(){ resizeFrame(iframeObj, 1);oldEvent; };
이렇게 바꿔주시면 됩니다. -
윤상권
2004.12.30 17:30
와우 대단하군요 ^ㅇ^ 감사합니다. 소스 잘 쓰겠습니다~~~
방법은 아이프레임 속의 문서에 클릭이벤트 발생시 다시 사이즈 조정하는 겁니다.
수정하실려면 주석보시고 수정하시면 됩니다.
<script language='JavaScript' type='text/javascript'>
<!--
function resizeFrame(iframeObj){
/* 아이프레임에서 읽어들인 페이지의 body */
var innerBody = iframeObj.contentWindow.document.body;
/*
* 특정이벤트 발생시 다시 사이즈 조정!! ( 윤상권님의 지적 )
* ex )
* 1. innerBody.ondbclick = function { resizeFrame(iframeObj, 1); };
* 2. innerBody.onmousemove = function { resizeFrame(iframeObj, 1); };
* 3. innerBody.onkeydown = function { resizeFrame(iframeObj, 1); };
*/
innerBody.onclick = function(){ resizeFrame(iframeObj, 1); };
/* 높이 다시설정 */
var innerHeight = innerBody.scrollHeight + (innerBody.offsetHeight - innerBody.clientHeight);
iframeObj.style.height = innerHeight;
/*---------- 넓이도 함께 자동조정되야 한다면 주석을 풀어주세요~--------------------------------
// 넓이 다시설정
var innerWidth = innerBody.scrollWidth + (innerBody.offsetWidth - innerBody.clientWidth);
iframeObj.style.width = innerWidth;
---------------------------------------------------------------------------------------------------*/
if( !arguments[1] ) /* 특정 이벤트로 인한 호출시 스크롤을 그냥 둔다. */
this.scrollTo(1,1);
}
//-->
</script>