JavaScript Iframe自动调整大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript Iframe自动调整大小相关的知识,希望对你有一定的参考价值。

Given an iframe element and a header element, make the iframe just high enough to fit in the browser window. On window resize, readjust. Keep a minimum height for the iframe.
  1. function autoSizeIframeHeight(iframe, header, minHeight) {
  2. minHeight = minHeight || 300;
  3. function getViewportHeight() {
  4. var h = document.documentElement.clientHeight;
  5. return document.compatMode === "CSS1Compat" && h || document.body.clientHeight || h;
  6. }
  7. function getHeaderHeight() {
  8. return parseFloat(getComputedStyle(header,'height'));
  9. }
  10. function getComputedStyle(el, cssprop){
  11. if (el.currentStyle) { // IE
  12. return el.currentStyle[cssprop];
  13. }
  14. else if (document.defaultView && document.defaultView.getComputedStyle) {
  15. return document.defaultView.getComputedStyle(el, "")[cssprop];
  16. }
  17. else {
  18. return el.style[cssprop];
  19. }
  20. }
  21. function setIframeHeight() {
  22. var toHeight = getViewportHeight() - getHeaderHeight();
  23. iframe.height = Math.max(toHeight, minHeight);
  24. body.style.overflowY = toHeight < minHeight ? 'auto' : 'hidden';
  25. }
  26. var body = document.body || document.getElementsByTagName('body')[0];
  27. setIframeHeight();
  28. if (window.addEventListener) {
  29. window.addEventListener('resize', setIframeHeight, false);
  30. }
  31. else if (window.attachEvent) {
  32. window.attachEvent('onresize', setIframeHeight);
  33. }
  34. }
  35. // example usage:
  36. // autoSizeIframeHeight(document.getElementById('MyFrame'), document.getElementsByTagName('header')[0], 300);

以上是关于JavaScript Iframe自动调整大小的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 没有调整 iframe 的大小

怎么让iframe的大小跟随内容的大小自动调整?

JavaScript 根据内容调整iframe大小

JavaScript iframe动态调整大小

JavaScript 将iFrame的大小调整为其内容

禁用 iframe 自动调整大小