<script language="javascript">
function resizeIfr(obj, minHeight) {
minHeight = minHeight || 10;
try {
var getHeightByElement = function(body) {
var last = body.lastChild;
try {
while (last && last.nodeType != 1 || !last.offsetTop) last = last.previousSibling;
return last.offsetTop+last.offsetHeight;
} catch(e) {
return 0;
}
}
var doc = obj.contentDocument || obj.contentWindow.document;
if (doc.location.href == 'about:blank') {
obj.style.height = minHeight+'px';
return;
}
//var h = Math.max(doc.body.scrollHeight,getHeightByElement(doc.body));
//var h = doc.body.scrollHeight;
if (/MSIE/.test(navigator.userAgent)) {
var h = doc.body.scrollHeight;
} else {
var s = doc.body.appendChild(document.createElement('DIV'))
s.style.clear = 'both';
var h = s.offsetTop;
s.parentNode.removeChild(s);
}
//if (/MSIE/.test(navigator.userAgent)) h += doc.body.offsetHeight - doc.body.clientHeight;
if (h < minHeight) h = minHeight;
obj.style.height = h + 'px';
if (typeof resizeIfr.check == 'undefined') resizeIfr.check = 0;
if (typeof obj._check == 'undefined') obj._check = 0;
// if (obj._check < 5) {
// obj._check++;
setTimeout(function(){ resizeIfr(obj,minHeight) }, 200); // check 5 times for IE bug
// } else {
//obj._check = 0;
// }
} catch (e) {
//alert(e);
}
}
</script>
<iframe ALLOWTRANSPARENCY="true" src="text.php" width="640" height="480" frameborder="0" scrolling="no" onload="resizeIfr(this, 300)"></iframe>
이 방법은 네이버 블로그에서 사용하는 방법입니다.
로컬은 잘 되는데 다른 주소를 불러들이면 height 값이 자동으로 안됩니다.
'홈페이지 제작 > JavaScript' 카테고리의 다른 글
getElementsByName 과 getElementById 사용예제 (0) | 2009.03.18 |
---|---|
글자수를 바이트(Byte)로 계산하여 알려주는 소스 (0) | 2009.02.17 |
마우스 오버시 레이어 팝업으로 설명글 보여주기 (0) | 2008.09.22 |
자신의 웹브라우져, 운영체제 확인 (0) | 2008.09.18 |
소스보기가 막혀있는곳을 뚫어보자 (0) | 2008.06.19 |