內(nèi)嵌iframe頁面在IOS下會受內(nèi)部元素影響自動撐開的問題

2020-4-19    seo達(dá)人

IOS下的webview頁面,內(nèi)嵌iframe元素,將其樣式指定為寬高100%:

.iframe { width: 100%; height: 100%;
}

在安卓下運(yùn)行均無問題,但是在IOS下會出現(xiàn)異常。

具體表現(xiàn)為iframe頁面內(nèi)的子元素一旦超出原先的邊界,只要能影響到html元素的寬高,就會自動撐開iframe,即使html元素設(shè)置了overflow:hidden也沒用。
比如一個body元素下的彈層需要從下往上滑動進(jìn)場,這個彈層的位置就會導(dǎo)致html高度的變化,因此頁面底部的tabbar就會在彈層運(yùn)動期間先消失再出現(xiàn)。

解決方法就是使用具體的寬高數(shù)值鎖定iframe元素:

function onLoadIFrame (index) { // 修復(fù)IOS下輪播圖初始化瞬間會讓iframe寬度自行擴(kuò)大問題 if (this.ENV.isIOS) { const iframe = this.$el.querySelector('#iframe' + index)
    iframe.style.width = iframe.clientWidth + 'px' iframe.style.height = iframe.clientHeight + 'px' }
}

分享本文至:

日歷

鏈接

個人資料

存檔