在 iOS 设备上不支持 iframe 的滑动
如下反例:
html 代码
css 代码
- iframe {
- position: fixed;
- right: 0;
- bottom: 0;
- left: 0;
- top: 0;
- }
原因:iframe 嵌入后,ios 设备不支持 position:fixed; 属性,但在 Android 端是可以滚动。
对此,只能用另类的方法实现,在其外边加一层 div。
html 代码
- <div class="fuck-ios-iframe">
- <iframe src=""></iframe>
- </div>
css 代码
- .fuck-ios-iframe {
- position: fixed;
- right: 0;
- bottom: 0;
- left: 0;
- top: 0;
- -webkit-overflow-scrolling: touch;
- overflow-y: scroll;
- }
- .fuck-ios-iframe iframe {
- height: 100%;
- width: 100%;
- }
这样,就能正常滚动了。
对框架内变量处理问题
常规的,通过 window 或者 parent 来操作。
- parent.frames["iframeName"].someVar
- parent.frames["iframeName"].someFunc
- window.iframeName.someVar
很不巧,在ios不行,同时操作框架内容的 js 会报错,阻塞运行,注意。
后面尝试通过本地存储来解决。
iframe 在 ios 的高度问题
默认的,给
iframe 添加一个 100 % 高度,内容可以使其撑开,但在 ios 上是不行的,它只会显示一小部分。
解决办法可以通过js动态赋予高度,或者外层添加一个 div 通过控制 div 高度来达到目的,而框架只需要保持宽高保持 100% 即可。
还有些高度及其他问题,由于个人对 iframe 的排斥,不多描述。
评论 (0)