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嵌入页面注意的问题还是很多的,简单的还好,复杂嵌入请谨慎使用。

出自: https://www.cnblogs.com/lisaShare/p/9720092.html

原文地址:https://www.cnblogs.com/sichaoyun/p/11535407.html

时间: 2024-08-08 07:38:53

iframe ios中h5页面 样式变大的相关文章

ios嵌套H5页面,出现的小bug;

ios嵌套H5页面,点击数字时就会弹出打电话的功能:解决方法: 在head标签中添加: <meta name="format-detection" content="telephone=no"> ios嵌套H5页面,只要碰到页面,就会使input获取焦点,调取ios键盘,解决方法:在页面上添加js如下: $("body")[0].addEventListener("touchstart",function(){ d

最新关于微信中h5页面qp防封屏蔽技术的分享

现在所有产品都会在微信中推广,比如减肥产品,美容产品,今天我们来分析的是qp在微信 中的推广,众所周知,微信一直都在打压网络qp,包括qp游戏.红包等等,因此,微信根据用户投诉举报来审核,另一方面,微信有自己的检测机制,而且不定时的做改变,这样令从事qp行业的大佬们非常头大,时不时就被封,有时候十几个域名一天就出问题,可见在微信中h5页面qp推广如何做好防封屏蔽是非常重要的.那我们要怎做到有效防封呢?猴子数据给出关于微信×××域名防封最新解决方案. 现在市场上有最普遍的防封方案就是检测微信qp域

手机版制作H5页面免费工具大集合

搜狐快站 搜狐快站是搜狐推出的免费一站式移动建站云平台,不久前他们也进军了H5页面制作的领域.拖拽式操作,简单易上手:有辅助线,支持图片微调:背景图片有滤镜功能,同一组件支持多重动画,自主程度高.另外还支持表单.电话.视频.自动播放.JS插件等功能.最重要的是,上述功能全部免费,完全无需担心制作成本. 初页 初页作为手机端制作动态海报的APP,门槛还是比较低的,容易上手,可以直接在手机上编辑,制作极为便利,图文混排的模板也很丰富.可免费下载安卓版和苹果版初页App,或通过电脑在线创建.编辑,轻松

jQuery之实现页面字体变大、变小

转载请标明,http://www.gxabase.com jQuery之实现字体变大.变小,这在我们做网页的时候经常会使用的功能,以下为实现过程: 1.制作网页页面index.html,页面代码如下: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"/> <title>jQuery training</title> <

APP中H5页面返回

内嵌到APP里面的H5页面,当点击APP上的返回按钮或者手机上的返回按钮时,如果H5页面不是页面的跳转,而是仅仅的Tab切换时,就会出现直接跳出页面的情况. 解决的办法: function isVisible(obj){ var ret = true; if(obj.style.display === "none"){ ret = false; } return ret; } function showPage(){ var p1 = $(".pagesa"); v

audio在安卓手机微信中h5页面遇到的问题

最近在做微信h5活动页面,由于页面是推广活动,所以有动画和音频,其中存在背景音乐和各种音效,遇到的问题就是背景音乐会被卡住. 具体情况是背景音乐在正常播放时遇到有音效的就会block,只有重新点击播放才能正常播放,遇到音效又会block...最后查到原因是在安卓4.4.X版本中微信做了处理,只允许一个进程在,而音频是new Audio的时候就重新创建进程,导致同一时间只能播放一种音频. 最后的解决办法就是检测版本信息和是否是微信,取舍一种音频才解决问题. 不知道有人遇到此问题么?是怎么解决的?

iOS 中的页面间传值的各种方法

1.通过属性传值 将A页面所拥有的信息通过属性传递到B页面使用,B页面定义了一个naviTitle属性,在A页面中直接通过属性赋值将A页面中的值传到B页面. #import <UIKit/UIKit.h> #import "DetailViewController.h" @interface RootViewController :UIViewController<ChangeDelegate> { UITextField *textField; } @end

Ihone中H5页面用on绑定click无效的解决方法

首先声明本人资质尚浅,本文只用于个人总结.如有错误,欢迎指正.共同提高. ----------------------------------------------------------------------------------- 首先问一句? 为什么移动页面还在用click方法?假如必须用click,且遇到如标题所示bug,下文便是解决之道. 话不多说,当你懂得何时直接绑定click,何时用on绑定时候,理解下文就非常容易. 当用如下方法绑定click事件时, exp: $(docu

iOS中一个页面显示两个tableview的情况

一个页面显示两个tableview,并且每个tableview上的数据都不一样,一般用以下方法: 首先建一个继承自UIView的类,来表示用来切换tableview的view //在view的类的.h文件中 #import <UIKit/UIKit.h> @protocol MyAttentionHeadViewDelegate <NSObject> //建一个叫MyAttentionHeadViewDelegate的一个代理 @optional //两个代理方法(可选择实现opt