根据我更好的判断,我被迫使用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帖子中获得了原始的调整大小代码(第一个引用块)。我忘记给链接添加书签了!
答案 0 :(得分:0)
iframe中缺少双引号 这是纠正
<iframe id="iframe1" height="1550px" frameborder="0" width="100%" marginheight="0" src="/something.html" scrolling="no" onload="autoResize('iframe1')>