使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办


Posted in Javascript onJanuary 04, 2016

相关阅读:微信支付如何实现内置浏览器的H5页面支付

情景再现:

      正当开心地收拾东西准备下班的时候,测试部的姑娘跑过来提了一个bug: “在iphone下,点击下拉框出现页面乱跳转现象,安卓机并没有这个问题。而跳转的页面刚好是底部菜单的几个页面。”由于项目比较急,小编只能乖乖留下解决问题。再次测试之后,小编逐一排查了可能性原因(正式版和测试版代码不一致,页面HTML代码错乱,css代码错误),但都未能解决问题。一个简单的select,怎么就出现问题了呢?百思不得其解。(至今也没有找到问题根源)

      找不出问题根源,只能先看看有没有解决方案。经过多次调试,捕获select动作,找到了一个解决方案。原理很简单:利用div来模拟select。

解决方案:

      思路也是比较清晰的。页面中有两个html结构,一是select代码照常写(一开始处于隐藏状态display:none),二是被模拟的div(一开始处于显示状态),当点击div时出现select下拉框,同时将读取的option值给被模拟的div,其模拟核心代码可下载VisualSelect.js

html代码

<div class=”visualSelect” >商行</div>
<select class=”round” style=”display:none;”>
 <option value=”1”>国股</option>
 <option value=”2”>商行</option>
 <option value=”3”>其他</option>
</select>

css代码

.round { border-radius: 4px;}
.visualSelect {
 width: 100%;
 padding: .45rem .5rem .25rem .75rem;
 margin-bottom: .875rem;
 border: 1px solid #ddd;
 border-radius: 4px;
 color: #bbb;
}

js代码

注:由于该问题只存在于部分iphone,android手机并没有问题,因此最好判断机型。

var agent = navigator.userAgent;
if ( agent.indexOf(“iPhone”) > -1) {
 $(“select”).VisualSelect(); //调用插件即可
}

PS:bootstrap滚动监听在iPhone微信内置的浏览器上有时有效果有时没有

bootstrap写了一个affix的附加导航(导航条在左边,数据在右边,分成的两列),在安卓手机的微信内置浏览器上滚动监听是正常的,但是在iPhone微信的内置浏览器上有时可以监听有时不能监听,这是什么原因?

解决方案:

出现这个原因是用HTML5写的网页,iPhone没有及时响应导致的,最好用jQuery mobile。

Javascript 相关文章推荐
使两个iframe的高度与内容自适应,且相等
Nov 20 Javascript
jQuery 1.5 源码解读 面向中高阶JSER
Apr 05 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
Apr 22 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
Jan 24 Javascript
jquery form 隐藏的input 选择
Apr 29 Javascript
JavaScript实现重置表单(reset)的方法
Apr 02 Javascript
详解Bootstrap各式各样的按钮(推荐)
Dec 13 Javascript
JS实现数组按升序及降序排列的方法
Apr 26 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
Jul 22 jQuery
javascript input输入框模糊提示功能的实现
Sep 25 Javascript
简单了解Javscript中兄弟ifream的方法调用
Jun 17 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
May 10 Javascript
javascript从定义到执行 你不知道的那些事
Jan 04 #Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
Jan 04 #Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
Jan 04 #Javascript
深入探究AngularJS框架中Scope对象的超级教程
Jan 04 #Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
Jan 04 #Javascript
详解AngularJS中的filter过滤器用法
Jan 04 #Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
Jan 04 #Javascript
You might like
关于js与php互相传值的介绍
2013/06/25 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
laradock环境docker-compose操作详解
2019/07/29 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
不同浏览器的怪癖小结
2010/07/11 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
js点击页面其它地方将某个显示的DIV隐藏
2012/07/12 Javascript
jquery插件制作教程 txtHover
2012/08/17 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
Python3 合并二叉树的实现
2019/09/30 Python
python redis 批量设置过期key过程解析
2019/11/26 Python
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
实习鉴定范文
2013/12/19 职场文书
运动会领导邀请函
2014/01/10 职场文书
触摸春天教学反思
2014/02/03 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
战略合作意向书范本
2014/04/01 职场文书
幼儿评语大全
2014/04/30 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
新闻人物通讯稿
2014/10/09 职场文书
办公室岗位职责范本
2015/04/11 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
深度学习详解之初试机器学习
2021/04/14 Python
python 制作一个gui界面的翻译工具
2021/05/14 Python
vue实现登陆页面开发实践
2022/05/30 Vue.js