iframe在ios下無故擴大的問題探究


移動端頁面內嵌了個 iframe,在 ios 下打開卻發現頁面怪異。比如 demo。代碼如下:

復制代碼<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no"> <style> html { height: 100%; width: 100%; } </style> </head> <body style="height: 100%; margin: 0; padding: 0; overflow-y: hidden;"> <iframe style="width:100%; height: 880px;" frameborder="0" src="http://m.hao123.com"> </iframe> </body> </html>

Android 下展現良好,但是在 ios 下:

調試一看,iframe 無故變大了,正常情況下應該和 screen 的寬保持一致(比如 360px),在 ios 下的寬度變成了 1440px(iPhone6) 或者 720px(iPhone4)。(感謝 double Net 提供的圖片,不禁感概 mac 大法好啊)

最后定位到使得 iframe 變大的原因是,頁面中元素即使已經 hidden 或者 display 為 none 了,在計算 iframe 大小時並不會忽略它們,當然前提是在 ios 下,算不算是 ios 的一個 bug 呢?

比如 hao123 中有個圖片的輪播效果,iframe 會覺得當前頁面太窄無法容納這么寬的內容,而自動加寬了。


解決這樣的問題也很簡單,盡量不出現 "溢出" 頁面的元素,但是做起來卻相當復雜,要考慮很多情況,如果 iframe 很重要的話,可以考慮定制頁面。


免責聲明!

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



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