使用微信内置浏览器点击下拉框出现页面乱跳转现象(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 相关文章推荐
JavaScript Konami Code 实现代码
Jul 29 Javascript
Javascript 类与静态类的实现
Apr 01 Javascript
JavaScript splice()方法详解
Sep 22 Javascript
js加入收藏以及使用Jquery更改透明度
Jan 26 Javascript
详解JavaScript的变量和数据类型
Nov 27 Javascript
vue 2.0项目中如何引入element-ui详解
Sep 06 Javascript
Vue入门之animate过渡动画效果
Apr 08 Javascript
详解vue几种主动刷新的方法总结
Feb 19 Javascript
如何为你的JS项目添加智能提示与类型检查详解
Mar 12 Javascript
vue接入腾讯防水墙代码
May 07 Javascript
vue-router源码之history类的浅析
May 21 Javascript
基于vue实现简易打地鼠游戏
Aug 21 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
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
虫族 Zerg 历史背景
2020/03/14 星际争霸
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
JS类的封装及实现代码
2009/12/02 Javascript
js 获取Listbox选择的值的代码
2010/04/15 Javascript
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
五年级学生评语大全
2014/12/26 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
个人更名证明
2015/06/23 职场文书
初中体育教学随笔
2015/08/15 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书