使用微信内置浏览器点击下拉框出现页面乱跳转现象(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 相关文章推荐
另类调用flash无须激活的方法
Dec 27 Javascript
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
Dec 02 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
Mar 18 Javascript
jQuery AJAX 调用WebService实现代码
Mar 24 Javascript
Jquery AJAX POST与GET之间的区别
Nov 14 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
Apr 25 Javascript
node.js正则表达式获取网页中所有链接的代码实例
Jun 03 Javascript
jQuery实现异步获取json数据的2种方式
Aug 29 Javascript
JavaScript使用循环和分割来替换和删除元素实例
Oct 13 Javascript
基于jQuery实现动态搜索显示功能
May 05 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
Nov 25 Javascript
使用TS来编写express服务器的方法步骤
Oct 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
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
linux下为php添加curl扩展的方法
2011/07/29 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
比较好用的PHP防注入漏洞过滤函数代码
2012/04/11 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
改进Django中的表单的简单方法
2015/07/17 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
python3对接mysql数据库实例详解
2019/04/30 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
python实现学生管理系统开发
2020/07/24 Python
Python用Jira库来操作Jira
2020/12/28 Python
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
大学生毕业自我鉴定范文
2014/02/03 职场文书
丧事主持词大全
2014/04/02 职场文书
公司承诺书范文
2014/05/19 职场文书
财务整改报告范文
2014/11/05 职场文书
小学国庆节活动总结
2015/03/23 职场文书
篮球赛闭幕式主持词
2015/07/03 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
感恩父母主题班会
2015/08/12 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python
pandas中关于apply+lambda的应用
2022/02/28 Python
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL
MySql数据库触发器使用教程
2022/06/01 MySQL