iframe ios中h5页面 样式变大
实际项目开发中,iframe在移动设备中使用问题还是很大的,说一说我的那些iframe坑
做过的这个后台管理框架,最开始的需求是PC,但随着业务需要,需要将项目兼容到ipad,后台的框架也是使用的开源框架开发,使用的是iframe嵌套页面的方式
1、内部嵌入iframe,里面的内容页面中有绝对定位的元素,会有问题!
现象:项目中嵌入 <iframe /> 并设置宽高后,发现在 Android 手机浏览器上打开可以正常运行,但是在 iOS 手机上会有 iframe 页面样式莫名变大,效果如下:

经过各种尝试以及找了很多资料,最后终于找到一个完美解决的办法,感谢 <不靠谱的人> 采取了他的方案后,很漂亮的解决了这个bug......
代码如下:
<div style="overflow: auto;-webkit-overflow-scrolling:touch;width:100%;height:100%;"> <iframe v-if="type" :src="outurl" scrolling="auto" frameborder="0" width="100%" height="100%"></iframe>
<iframe v-else :src="outurl" frameborder="0" height="100%" scrolling='no' style="width: 1px; min-width: 100%; *width: 100%;"></iframe>
</div> // 这种放大也可能是轮播外侧没有嵌套一层标签所致,手机单独浏览没有问题,如果嵌入iframe ios手机就会出现
再测发现ios android 受到scrolling="no"影响,需要判断一下设备类型,在data里面定义一个type变量,created钩子函数里面执行这个代码判断如何显示就ok了
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
// var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
// console.log('是否是Android:'+isAndroid);
// console.log('是否是iOS:'+isiOS);
if(isAndroid){
this.type = true
}else{
this.type = false
}
因为嵌入的页面不统一,发现使用如上的方法仍然导致部分页面或多或少的出现问题,后来我将提供嵌入的页面,每一个都做了测试,发现内部页面会不能正常显示,除了外部的布局外,内部的页面布局也会有影响,需要同时做修改,否则页面无法达到需求标准,最终功能并没有上线,不过可以总结出:移动端frame嵌入页面注意的问题还是很多的,简单的还好,复杂嵌入请谨慎使用。
iframe ios中h5页面 样式变大的更多相关文章
- iOS 中 h5 页面 iframe 调用高度自扩展问题及解决
开发需求需要在 h5 中用 iframe 中调用一个其他公司开发的 html 页面. 简单的插入 <iframe /> 并设置宽高后,发现在 Android 手机浏览器上打开可以正常运行, ...
- Response.Write()方法响应导致页面字体变大的解决办法
关于ASP.NET中用Response.Write()方法响应导致页面字体变大的解决办法 最近研究了ASP.NET,发现一个问题,比方说在页面里面有个Button,要点击以后要打开新窗口,而且 ...
- ios嵌套H5页面,出现的小bug;
ios嵌套H5页面,点击数字时就会弹出打电话的功能:解决方法: 在head标签中添加: <meta name="format-detection" content=" ...
- 苹果input点击页面稍微变大的问题
今天在群里看到有人问input标签点击以后在ios下页面会变大一点的问题 说实话我是没有遇到过后来解决了我看了一下代码 我明白了 不是我没有遇到过是因为我写的比较规范 所以没出现那样的问题 嘿嘿. ...
- html标签被div嵌套页面字体变大的解决办法
html标签被div嵌套页面字体变大的解决办法 <div> <html> <head> <title></title> </head& ...
- IOS的H5页面滑动不流畅的问题:
IOS的H5页面滑动不流畅的问题: -webkit-overflow-scrolling : touch; 需要滑动的是哪块区域,就在哪里加上这段代码就OK
- ios系统微信浏览器、safari浏览器中h5页面上拉下滑导致悬浮层脱离窗口的解决方法
一. 运行环境: iphone所有机型的qq浏览器,safari浏览器,微信内置浏览器(qq浏览器内核)等. 二. 异常现象: 1. 大幅度上下滑动h5页面,然后停止滑动,有时候会影响到页面滚动,如局 ...
- chrome 调试 ios的 H5 页面
原文地址http://www.cnblogs.com/kelsen/p/6402477.html 本文重点讨论如何在 Windows 系统中通过chrome 浏览器调试运行在 iPhone Safar ...
- 微信中h5页面用window.history.go(-1)返回上一页页面不会重新加载问题
问题描述: 在实际开发中遇到这样一个问题,业务需求涉及到返回上一页问题,第一时间想到了window.history.go(-1)方法,这样做本身没有任何问题,但是在微信中,安卓手机还好返回上一页页面会 ...
随机推荐
- codeforces-1140 (div2)
A.维护一个前缀最大值,不断跳即可 #include <map> #include <set> #include <ctime> #include <cmat ...
- Pandas系列(六)-时间序列详解
内容目录 1. 基础概述 2. 转换时间戳 3. 生成时间戳范围 4. DatetimeIndex 5. DateOffset对象 6. 与时间序列相关的方法 6.1 移动 6.2 频率转换 6.3 ...
- cookie小栗子-实现简单的身份验证
关于Cookie Cookie是一种能够让网站Web服务器把少量数据储存到客户端的硬盘或内存里,或是从客户端的硬盘里读取数据的一种技术. 用来保存客户浏览器请求服务器页面的请求信息,可以在HTTP返回 ...
- Linux输入法问题
本篇博文简单介绍一下介绍Linux输入相关问题及解决方案 关于Invalid UTF-8参见https://www.baidu.com/link?url=QDh2Fa1uJcmyiaKZBzAFkNn ...
- 【汇总目录】Java
疯狂Java学习笔记 [2019年03月20日] Lambda表达式与函数式接口 [2019年03月20日] Lambda表达式概念与基本语法 [2019年03月18日] 内部类 [2019年02月1 ...
- PYthon3:简单几步实现冒泡排序
1.概念理解: 冒泡排序:可以简单的理解为是列表中相近的元素,两两比较,小的在前面.最多需要len()-1次排序. 2.例子:a=[11,7,4,56,35,0] 3.代码实现: 4.输出结果: 第1 ...
- pythonのdjango初体验
简单的一个列表展示,实现了增.删.插 1.通过新建项目来创建一个Django项目 2.通过pycharm中的Terminal来创建app ,命令如下: python manage.py start ...
- Pytorch报错记录
1.BrokenPipeError 执行以下命令时: a,b = iter(train_loader).next() 报错:BrokenPipeError: [Errno 32] Broken pip ...
- 干货分享:让你分分钟学会 javascript 闭包(转)
闭包,是javascript中独有的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述,直 ...
- 错误: H.264 bitstream malformed, no startcode found,
使用命令 ffmpeg -i hbg.flv -c copy hbg.ts 时遇到如下错误: ffmpeg version 2.8.15-0ubuntu0.16.04.1 Copyright (c) ...