刚开通博客不久,经常在看到前辈和大牛在博客上分享技术经验,就想用博客来记录一些遇到过的问题和解决问题的经验。
前两天一朋友和我讨论到用iframe内嵌网页如何做到让iframe自适应子页面的高度。我之前也遇到过同样的问题,如果iframe在不设置高度的情况下,默认高度为150px(在谷歌浏览器下亲试,其他浏览器未实验),如果iframe通过js引用其他子页面进来也无法像div那样通过内容的大小来改变iframe的高度问题,也就是说,内嵌子页面的大部分内容都会被iframe外框的高度限制从而显示不出来。
当然如果需要切换的每个子页面的高度都一样的话,那么预设iframe的高度是一种很方便有很简单的方式,如果每个子页面的高度不一样,那么就需要用js来改变iframe的高度了,由于项目中只用到一个js文件,所有的页面引用的都是这个js文件,所以问题就变得比较麻烦。按理说,我们可以通过获取子页面的高度来设置iframe的高度,在onload方法中可以获取到父页面和子页面的高度,但由于是点击式切换页面导致this所指的对象不同,在onload方法中获取的子页面高度数据没有办法传递到success()方法中。在一下js方法中用console.log(this);可以知道获取第一个页面高度的this对象和获取到第二个页面高度的this对象还有sucess()方法中的this对象都是不同的。所以利用对象存储的方式也不行。