使用微信内置浏览器点击下拉框出现页面乱跳转现象(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+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
Sep 02 Javascript
css配合jquery美化 select
Nov 29 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
May 27 Javascript
JavaScript Ajax编程 应用篇
Jul 02 Javascript
微信小程序 wxapp画布 canvas详细介绍
Oct 31 Javascript
jquery滚动条插件(可以自定义)
Dec 11 Javascript
Javascript创建类和对象详解
May 31 Javascript
vue过渡和animate.css结合使用详解
Jun 14 Javascript
详解如何制作并发布一个vue的组件的npm包
Nov 10 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
Sep 05 Javascript
微信小程序错误this.setData报错及解决过程
Sep 18 Javascript
解决vue一个页面中复用同一个echarts组件的问题
Jul 19 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 中英文混合排版中处理字符串常用的函数
2007/04/12 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
JavaScript 字符串连接性能优化
2008/12/20 Javascript
新浪微博字数统计 textarea字数统计实现代码
2011/08/28 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
jQuery中队列queue()函数的实例教程
2016/05/03 Javascript
基于Layer+jQuery的自定义弹框
2020/05/26 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
2019/09/23 Javascript
JS+CSS实现3D切割轮播图
2020/03/21 Javascript
python 剪切移动文件的实现代码
2018/08/02 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
matplotlib实现区域颜色填充
2019/03/18 Python
详解python深浅拷贝区别
2019/06/24 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
Python 如何对文件目录操作
2020/07/10 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
System.Array.CopyTo()和System.Array.Clone()有什么区别
2016/06/20 面试题
九州传奇上机题
2014/07/10 面试题
测绘工程专业个人自我评价
2013/12/01 职场文书
老干部工作先进事迹
2014/08/17 职场文书
公司放假通知范文
2015/04/14 职场文书
2019个人工作总结
2019/06/21 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python