javascript 中iframe高度自適應(同域)執行個體詳解,javascriptiframe

來源:互聯網
上載者:User

javascript 中iframe高度自適應(同域)執行個體詳解,javascriptiframe

javascript 中iframe高度自適應(同域)

       今天解決了iframe高度自適應的問題,不過這隻是同域下的頁面嵌入,以下是代碼:

function SetCwinHeight(){     var iframeid = document.getElementById("frame");  //frame是iframe的id     if (document.getElementById) {      if (iframeid && !window.opera) {        if (iframeid.contentDocument && iframeid.contentDocument.body.offsetHeight) {         iframeid.height = iframeid.contentDocument.body.offsetHeight;        }else if (iframeid.Document && iframeid.Document.body.scrollHeight) {                  iframeid.height = iframeid.Document.body.scrollHeight;                 }      }     } 

             iframe嵌入頁面時需要等待它完全載入完後才可以調用SetCwinHeight(),所以當修改iframe裡的src值時,也需要等待修改的頁面完全嵌入後才可以調用SetCwinHeight(),這樣才有效果,那麼該怎麼放置SetCwinHeight(),我的解決方案是在iframe標籤裡直接調用,即這樣寫 <iframe onload = "SetCwinHeight();"></iframe>,但是這樣的的話會汙染了html環境,可是在js中一般只用一次window.onload = function(){},如果使用多次,後面的會覆蓋前面的,所以目前為止我能想到的解決方案就這一個,

      當嵌入頁面修改時,iframe的高度也需要調整,當我在js檔案直接這樣window.onload = function(){SetCwinHeight();}調用SetCwinHeight()時,只有重新整理整個頁面才可以自適應高度,如果修改了iframe的src,iframe的高度還是前一個頁面的高度,當前頁面的高度無法自適應,一開始我以為是SetCwinHeight()寫錯了,但是當重新整理整個頁面時,當前頁面又可以自適應了,在遇到這個問題之後,我的焦急毛病又出現了,總是沒有分析問題就急急忙忙的去尋找有關於問題的解決方案,然後查出來的又文不對題,這樣反反覆複,不僅浪費了時間,還使得自己的心情特別煩躁,這樣的話工作就無法再進展下去。通過了這次的工作明白了自己的毛病,在休息了一會後,重新靜下心來整理思路,然後分析出現的問題,程式如何運行,點擊後程式啟動並執行步驟又是什麼,分析完後再看看是哪一步出錯了,為什麼會出錯,像這次出現的錯誤,並不是程式寫錯了,而是程式啟動並執行步驟出錯了,整個頁面重新整理後就可以實現效果,但是修改src後又沒有效果了,而window.onload = function(){}這一步是等待頁面完全載入完後才執行,那麼應該就是載入的問題了,所以需要等待頁面載入完後才可以調用SetCwinHeight(),通過這樣的分析,最後終於將問題解決了,經過這次,我一定要改掉急躁這個毛病,應該在遇到問題後,先分析問題和思考解決方案,如果自己解決不了再去尋找相應的解決方案。這樣就不會浪費時間和精力了。

 感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.