달력

4

« 2025/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2009. 11. 16. 12:26

자동으로 iframe의 크기를 조절 HTML자스2009. 11. 16. 12:26

출처 : 모름(돌아댕기다가 모아둔것 올리는 것이라 -_-a)


가끔 게시판이나 외부 사이트의 특정 페이지를 사이트에 iframe으로 동적으로 불러와야 할 경우

가 생기는데 동적으로 불러오다보면 불러온 내용 역시 동적(?)으로 나타나기 때문에 iframe의 크기

조절하기가 무척 힘들다는 ...

 

다음과 같은 스크립트를 사용하면 자동으로 iframe의 크기를 조절해 주는데 참 편하다는 ...

client side script이기 때문에 서버에 부하가 걸릴 염려도 없고 ~ 얼쑤 ~ ♪

 

 

다음과 같은 코드를 <script> ~ </script>에 넣어 주고서 ~

 

 

function resizeIF(Id)
{
        var obj = document.getElementById(Id);
        var Body;
        var H, Min;

        // 최소 높이 설정 (너무 작아지는 것을 방지)
        Min = 200;

        // DOM 객체 할당
        try
        {
                if (!document.all && obj.contentWindow.document.location.href

                        == 'about:blank') {
                        setTimeout("resizeIF('"+Id+"')", 10);
                        return;
                }

                Body = obj.contentWindow.document.getElementsByTagName('BODY');
                Body = Body[0];

                if (this.Location != obj.contentWindow.document.location.href) {
                        H = Body.scrollHeight + 5;
                        obj.style.height =  (H<Min?Min:H) + 'px';

                        this.Location = obj.contentWindow.document.location.href;
                }
        }
        catch(e)
        {
                setTimeout("resizeIF('"+Id+"')", 10);
                return;
        }

        setTimeout("resizeIF('"+Id+"')", 100);
}

 

 

iframe의 아래 부분에서 "new resizeIF('IF');"를 호출해 주면 알아서 자동으로 iframe의 사이

즈를 조절해 준다는;; (예전에는 일일이 나온 결과 수에 따라서 iframe의 크기를 pixel * x + y 같이

해줬다는;;)

 

 

단. 가끔 iframe에서 특이한(?) 페이지 이동이 있을 경우에 위 스크립트가 먹지 않을 경우가 있는데

이때는 iframe의 onLoad 이벤트에서 "new resizeIF('IF');"를 호출해 주면 잘 된다는 ...

 

물론 이때 iframe의 id는 당연히 "IF"가 되겠지요.

 

 

 

*. 꼬릿말1. 위 소스는 나의 악덕(?) 직속 상사 호석형의 홈피에서 퍼왔는데 ... ㅋㅋ 원제작자는 "행

복한고니"라는 별명(?)을 가진분이 작성(소스코드 위쪽에 쓰여있었음).

 

*. 꼬릿말2. 추가 적인 팁으로 ... 위의 스크립트로 iframe의 크기를 자동 조절할 경우 오른쪽에 스

크롤 바가 생겼다가 없어 지는데 ... 스크롤바를 안보이게 할려면 iframe의 속성에다가

"scrolling='no'"라고 명시해 주면 된답니다.

 

*. 꼬릿말3. iframe의 테두리를 안보이게 해주는 "frameborder='no'"는 당연히 해줘야 겠죠... ^^

 
[출처] [JavaScript] iframe 크기 자동 조절 스크립트|작성자 쪼구니







유동적인 IFRAME을 사용하시는것을 추천드립니다.

 

아래는 자동리사이즈 되는 iframe의 소스입니다.

 

<!--------------------------------------------------------------------------------------------------------------

 

<script>
function doResize()
{
container.height = myframe.document.body.scrollHeight+5;
container.width = myframe.document.body.scrollWidth+5;
}

</script>

 

<iframe src="주소" name="myframe" width="100%" height="100%" marginwidth="0" marginheight="0" frameborder="no" onload="doResize()" scroll="no"></iframe>

 

------------------------------------------------------------------------------------------------------------------>

유동iframe 사용시 스크롤바가 늘어나지 않는대신, 불러오는 페이지의 사이즈에 맞게 세로사이즈가 늘어나니 편합니다.
:
Posted by 비개인오후