iframe在部分iphone手機上變寬 如下圖: 百度查了很多也試了很多,最後的解決方式如下: 我使用的是VUE html代碼: <!-- 對於iphone中scrolling必須是no,不要擔心一定會滾動的,對於安卓手機scrolling則是auto,否則在安卓移動端不會滾動 --> <ifra ...
iframe在部分iphone手機上變寬
如下圖:
百度查了很多也試了很多,最後的解決方式如下:
我使用的是VUE
html代碼:
<!-- 對於iphone中scrolling必須是no,不要擔心一定會滾動的,對於安卓手機scrolling則是auto,否則在安卓移動端不會滾動 --> <iframe id="iframe1" class="iframeCss" height="100%" width="100%" :src="url" frameborder="0" :scrolling="type"></iframe>
css代碼:
.iframeCss { min-width: 100%; width: 3.75rem !important; //設置iframe寬度,這個也尤其重要 }
JavaScript代碼:
//onload方法在mounted()中執行 onload() { //獲取iframe標簽 var iframe = document.getElementById('iframe1') let _this = this iframe.onload = function() { // 判斷當前的移動端是否是蘋果系統 var u = navigator.userAgent var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) if (isiOS) { try { // 這個try catch可有可無 // 我測試了幾遍自己程式,沒有這一塊代碼的話,頁面第一次展示的時候有可能頁面會變寬一下,但是很快就又正常了,看著變寬只是一個過渡,我不知道是我手機問題還是其他問題,這個沒有深究 document.body.style.width = (window.screen.availWidth / document.body.clientWidth) * 100 + '%' var iframebody = iframe.contentWindow.document.body iframebody.style.width = document.body.clientWidth + 'px' // eslint-disable-next-line no-empty } catch (error) {} // 這是設置iframe的scrolling屬性 _this.type = 'no' } window.scrollTo(0, 0) } }
圖片和內容參考地址:https://www.cnblogs.com/wuzhiquan/p/5358731.html