使用微信内置浏览器点击下拉框出现页面乱跳转现象(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 相关文章推荐
Windows系统下Node.js的简单入门教程
Jun 23 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
Aug 21 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
May 05 Javascript
jquery精度计算代码 jquery指定精确小数位
Feb 06 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
Oct 25 Javascript
vue.js中created方法作用
Mar 30 Javascript
深入理解Vue Computed计算属性原理
May 29 Javascript
Javascript获取某个月的天数
May 30 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
Apr 26 Javascript
原生JavaScript之es6中Class的用法分析
Feb 23 Javascript
vue实现列表滚动的过渡动画
Jun 29 Javascript
利用 JavaScript 实现并发控制的示例代码
Dec 31 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生成EXCEL的东东
2006/10/09 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
Javascript中Array.prototype.map()详解
2014/10/22 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
JavaScript函数节流和函数去抖知识点学习
2018/07/31 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
如何在微信小程序中存setStorage
2019/12/13 Javascript
Javascript异步编程async实现过程详解
2020/04/02 Javascript
微信小程序canvas实现签名功能
2021/01/19 Javascript
9种python web 程序的部署方式小结
2014/06/30 Python
python关闭windows进程的方法
2015/04/18 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
2020/01/25 Python
Python reversed函数及使用方法解析
2020/03/17 Python
python RSA加密的示例
2020/12/09 Python
Laravel中Kafka的使用详解
2021/03/24 PHP
饭店工作计划书
2014/01/10 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
正科级干部考察材料
2014/05/29 职场文书
学校花圃的标语
2014/06/18 职场文书
先进教师个人事迹材料
2014/12/15 职场文书
公司辞职信模板
2015/05/13 职场文书
初三英语教学反思
2016/02/15 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
Vue的过滤器你真了解吗
2022/02/24 Vue.js