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     

 

 

剛開始做前端,各種的忽略,就寫個日志強化下記憶。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM