最近移动前端项目中遇到的两个坑

尽管要多加避免,但还别说,坑还真得常踩常有,不要以为手机端都是 Webkit 的天下就简单,不用处理浏览器之间的兼容问题,——其实不一致性的问题还是挺大的。

两个坑都是涉及 iframe 的——iframe 真是不好搞!

事情是这样的,一个内嵌于 iframe 的页面,因为需要从认证接口中返回 token 作为登录凭证,读取接口信息是没问题的,然后需要用 session 把登录信息保存起来。奇怪的是,session 无效,就像丢失了一样!脱离了 iframe 就是单独页面的话就没事。而且不是全部手机都这样,高版本安卓和苹果都这样(桌面和某些版本安卓正常)。我们知道一般用 cookies 一对一 session 的,估计 iframe 的 cookie 鉴于更完善的安全机制所以不能像低版本那样“愉快”地使用 cookies。

后来简直与甲方说出了我们“殚精竭虑”,无奈之下,只好使出最笨的方法,通过 url 参数传递认证数据。还好几个页面,加起来也没那么痛苦了……

第二个坑是苹果专属的,Safari 居然不能约束 iframe 内页面的宽度!安卓就 ok。简单说发现嵌入页面在移动端会出现变形,即使你加上

<meta name="viewport" content="width=320, initial-scale=1, user-scalable=yes" />

也无效。如果写死一个宽度那么就不能兼容苹果各种屏幕了。于是我居中正文,但有些人又不同意这种不符合美观的做法,于是我用 js 读取屏幕宽度然后写入 document.body.style.width。两行代码搞定,关键是思路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值