使用微信内置浏览器点击下拉框出现页面乱跳转现象(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 相关文章推荐
jQuery.extend 函数的详细用法
Jun 27 Javascript
jQuery之简单的表单验证实例
Jul 07 Javascript
jQuery 全选 全不选 事件绑定的实现代码
Jan 23 Javascript
Jil,高效的json序列化和反序列化库
Feb 15 Javascript
vue-resourse将json数据输出实例
Mar 08 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 Javascript
vue-cli webpack 引入jquery的方法
Jan 10 jQuery
angular实现页面打印局部功能的思考与方法
Apr 13 Javascript
angular2路由之routerLinkActive指令【推荐】
May 30 Javascript
基于bootstrap页面渲染的问题解决方法
Aug 09 Javascript
JS使用数组实现的队列功能示例
Mar 04 Javascript
全网小程序接口请求封装实例代码
Nov 06 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
php中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
php无限级分类实现方法分析
2016/10/19 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
2017/03/21 jQuery
node实现的爬虫功能示例
2018/05/04 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
Python 解析XML文件
2009/04/15 Python
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
python+POP3实现批量下载邮件附件
2018/06/19 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
python 将日期戳(五位数时间)转换为标准时间
2019/07/11 Python
详解python中的异常和文件读写
2021/01/03 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
C语言面试题
2015/10/30 面试题
食品流通安全承诺书
2014/05/22 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
春季运动会加油词
2015/07/18 职场文书
大学生团支书竞选稿
2015/11/21 职场文书