js获取iframe的高度
昨天一天弄了获取iframe高度的js。firefox,ie是正常的,chrome时而正常,时而不正常。今天看了半天发现了问题,chrome是正确的,严谨的。
1 var frameObj = document.getElementById("frameObj").contentDocument || document.getElementById("frameObj").contentWindow.document, 2 mainWrapHeight = $(window).height() - 49 - 21, 3 frame_height = frameObj.documentElement.scrollHeight; 4 $("#frameObj").height( frame_height < 610 ? mainWrapHeight : frame_height);
在chrome下时而报 uncaught TypeError:cannot read property “scrollHeight”of null (无法读取scrollHeight)。
一直以为chrome不支持scrollHeight 引起,后来各种测试发现,不是的。
最后发现是很多页面加载的顺序引起的,很多时侯iframe并没有加载,但js已经实现,对象都找不到,属性值铁定读取不到了。
所以改成下面的就可以了,加载完再执行js
1 $("#frameObj").on("load",function(){//iframe加载完后 高度自适应。 2 var frameObj = document.getElementById("frameObj").contentDocument || document.getElementById("frameObj").contentWindow.document, mainWrapHeight = $(window).height() - 49 - 21, 3 frame_height = frameObj.documentElement.scrollHeight; 4 $("#frameObj").height( frame_height < 610 ? mainWrapHeight : frame_height); 5 }); 6
刚开始做前端,各种的忽略,就写个日志强化下记忆。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。