1. 程式人生 > 其它 >iframe引用頁面解決高度自適應和無資料隱藏問題

iframe引用頁面解決高度自適應和無資料隱藏問題

  • 擺問題1:iframe引用頁面,解決高度自適應問題。如下圖:定高情況
  • 擺問題2:iframe引用頁面,解決無資料隱藏問題。如下圖:無資料情況
 1 <template>   
 2     <!--股東戶數-->
 3     <div class="shareholderNum" style="margin-bottom: 25px" v-if="shareholderNumFlag">
 4
<el-row> 5 <span class="littleRectangle"></span> 6 <span class="titleText">股東戶數</span> 7 </el-row> 8 <iframe style="width: 100%;height: 600px" frameborder="0" scrolling="auto" :src="shareholderNumUrl" id="shareholderNumIframe"> 9
</iframe> 10 </div> 11 </template> 12 13 <script> 14 const _this = this; 15 const shareholderNumIframe = document.querySelector('#shareholderNumIframe') 16 shareholderNumIframe.onload = function () { 17 //為空隱藏 18 let flagText = window.frames.shareholderNumIframe.contentWindow.document.querySelector(".el-select-dropdown__empty") ? 19
window.frames.shareholderNumIframe.contentWindow.document.querySelector(".el-select-dropdown__empty").innerText : ''; 20 if (flagText.indexOf('無資料') != -1) { 21 _this.shareholderNumFlag = false 22 } 23 24 if (_this.shareholderNumFlag) { 25 // 監聽高度變化 26 // Firefox和Chrome早期版本中帶有字首 27 var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver 28 // 選擇目標節點 29 var target = window.frames.shareholderNumIframe.contentWindow.document.querySelector(".numberOfShareholders-container"); 30 // 建立觀察者物件 31 var observer = new MutationObserver(function (mutations) { 32 var initHeight = window.frames.shareholderNumIframe.contentWindow.document.querySelector(".numberOfShareholders-container").clientHeight 33 if (initHeight === window.frames.shareholderNumIframe.clientHeight) { 34 return 35 } 36 window.frames.shareholderNumIframe.style.height = initHeight + 'px' 37 }); 38 // 配置觀察選項: 39 var config = { 40 // attributes: true 41 childList: true, // 子節點的變動(新增、刪除或者更改) 42 attributes: true, // 屬性的變動 43 characterData: true, // 節點內容或節點文字的變動 44 subtree: true // 是否將觀察器應用於該節點的所有後代節點 45 } 46 // 傳入目標節點和觀察選項 47 observer.observe(target, config); 48 // 隨後,你還可以停止觀察 49 // observer.disconnect(); 50 } 51 } 52 </script>