<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 값이 자동으로 안됩니다.

반응형