使iframe隨內容(target到iframe的內容)改變而自適應高度,完美解決各種獲取第一個demo高度后第二個高度不變情況


轉自:http://caiceclb.iteye.com/blog/281102

很高興,終於使用jquery實現了點擊外部鏈接,更改iframe內容時,iframe的高度自適應問題。 

失敗的測試就不說了,來直接的。 

兩個鏈接和iframe: 

Java代碼   收藏代碼
  1. <li><a href="selfinfo.jsp" target="c-c-iframe" title="個人信息" >個人信息</a></li>  
  2. <li><a href="modifypass.jsp" target="c-c-iframe" title="修改密碼" >修改密碼</a></li>  
  3.   
  4. <iframe src="init.jsp" id="c-c-iframe" name="c-c-iframe" width="500px;"  frameborder="0" scrolling="no" marginwidth="0" marginheight="0"></iframe>  



js代碼: 

Java代碼   收藏代碼
  1. <script type="text/javascript">  
  2. <!--  
  3. $(function(){  
  4.     $("#c-c-iframe").load(function(){         
  5.         $(this).height($(this).contents().find("#content").height() + 40);  
  6.     });  
  7.       
  8. });  
  9. -->  
  10. </script>  



這里的find("#content")是找出iframe內容文檔中的id為content的高度(另外比如find("body")),並設置給iframe, 
類似的還可以設置寬度,留給需要的朋友嘗試吧。 

這樣就解決了iframe不會因為內容過大被擋住的問題(因為我設置了scrolling="no")。 


PS:基本上我會優先考慮使用iframe來實現無刷新,兼容瀏覽器的后退按鈕;而且使用iframe加載flash是很爽的,不用寫什么js調用,object標簽,還符合W3C標准。 
推薦下面這種
2008年11月28日17:13:31 ,今天使用過程中根據實際情況進行了一下改良,代碼如下: 

Java代碼   收藏代碼
  1.     <script type="text/javascript">  
  2. <!--  
  3. $(function(){  
  4.     $("#workArea").load(function(){       
  5.         var height = $(this).contents().find("#box").height() + 40;  
  6. //這樣給以一個最小高度  
  7.         $(this).height( height < 400 ? 400 : height );  
  8.     });  
  9.       
  10. });  
  11. -->  
  12. </script>  



另發現使用find("body")不太好使,高度不准確。


免責聲明!

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



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