JavaScript调整大小iFrame - 在Firefox / IE中工作但不在Chrome中工作

时间:2015-03-07 08:47:22

标签: javascript jquery html iframe

根据我更好的判断,我被迫使用iframe通过CMS传递HTML5内容,而CMS无法自行管理内容。 iframe和主机页面位于同一个域中,因此我可以很容易地在它们之间进行通信。

iFrame中的内容动态调整大小(这是一个在线支付页面,并且包含未正确填写的字段的确认详细信息/错误消息),我正在使用此JavaScript调整其大小:

function autoResize(id){
  var newheight;
  var newwidth;

  if(document.getElementById){
      newheight=document.getElementById(id).contentWindow.document.body.scrollHeight;
      newwidth=document.getElementById(id).contentWindow.document.body.scrollWidth;
  }

      document.getElementById(id).height= (newheight) + "px";
      document.getElementById(id).width= (newwidth) + "px";
 }

我正在使用此代码在主页中显示iframe,高度是iframe页面可以达到的最大尺寸:

 <iframe id="iframe1" height="1550px" frameborder="0" width="100% marginheight="0" src="/something.html" scrolling="no" onload="autoResize('iframe1')"/>

要动态调整页面元素的大小和滚动我在iframe代码中使用与父页面通信的onclick事件:

onclick="setTimeout(function(){parent.parent.autoResize('iframe1');},10); window.parent.parent.scrollTo(0,500);"

setTimeout是必需的,因为我有其他脚本在onclick事件上运行,我需要先触发它们并调整iframe页面的大小然后告诉主页调整iframe的大小。

这比我在Firefox和IE11中预期的要好得多,但它在Chrome中不起作用。任何人对如何在Chrome中使用此功能有任何想法?

我假设这只是针对Chrome的一些调整,但现在是早上8:45,我从昨晚9点开始就一直在努力,所以我有点不知所措。

谢谢,

麦克

哦,信用到期的信用。我从StackOverflow帖子中获得了原始的调整大小代码(第一个引用块)。我忘记给链接添加书签了!

1 个答案:

答案 0 :(得分:0)

iframe中缺少双引号 这是纠正

<iframe id="iframe1" height="1550px" frameborder="0" width="100%"    marginheight="0" src="/something.html" scrolling="no" onload="autoResize('iframe1')>