使用微信内置浏览器点击下拉框出现页面乱跳转现象(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 相关文章推荐
简单通用的JS滑动门代码
Dec 19 Javascript
利用WebBrowser彻底解决Web打印问题(包括后台打印)
Jun 22 Javascript
javascript 计算两个整数的百分比值
Dec 26 Javascript
JavaScript中点击事件的写法
Jun 28 Javascript
纯JS打造网页中checkbox和radio的美化效果
Oct 13 Javascript
JavaScript实现移动端轮播效果
Jun 06 Javascript
浅谈gulp创建完整的项目流程
Dec 20 Javascript
vue-router beforeEach跳转路由验证用户登录状态
Dec 26 Javascript
Element Breadcrumb 面包屑的使用方法
Jul 26 Javascript
vue路由分文件拆分管理详解
Aug 13 Javascript
Vue如何循环提取对象数组中的值
Nov 18 Vue.js
JavaScript 语句之常用 for 循环详解
Mar 29 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
Yii框架响应组件用法实例分析
2019/09/04 PHP
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
2016/06/21 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
2016/11/13 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
python获取标准北京时间的方法
2015/03/24 Python
bat和python批量重命名文件的实现代码
2016/05/19 Python
快速入手Python字符编码
2016/08/03 Python
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
2018/12/11 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
CSS3 边框效果
2019/11/04 HTML / CSS
HTML5文档结构标签
2017/04/21 HTML / CSS
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
宿舍违规检讨书
2014/01/12 职场文书
责任书范本
2014/08/25 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python
分析Python list操作为什么会错误
2021/11/17 Python
Golang 结构体数据集合
2022/04/22 Golang