使用微信内置浏览器点击下拉框出现页面乱跳转现象(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实现绿白相间竖向网页百叶窗动画切换效果
Mar 02 Javascript
Jquery实现textarea根据文本内容自适应高度
Apr 03 Javascript
总结JavaScript中布尔操作符||与&amp;&amp;的使用技巧
Nov 17 Javascript
详解Bootstrap按钮
Jan 04 Javascript
JS构造函数与原型prototype的区别介绍
Jul 04 Javascript
深入研究React中setState源码
Nov 17 Javascript
jQuery轻量级表单模型验证插件
Oct 15 jQuery
深入了解JavaScript 私有化
May 30 Javascript
Ajax请求时无法重定向的问题解决代码详解
Jun 21 Javascript
layui 监听select选择 获取当前select的ID名称方法
Sep 24 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
Oct 16 Javascript
Jquery让form表单异步提交代码实现
Nov 14 jQuery
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 前一天或后一天的日期
2008/06/28 PHP
PHP 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
Vuex实现数据共享的方法
2019/12/20 Javascript
javascript canvas封装动态时钟
2020/09/30 Javascript
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
python爬取亚马逊书籍信息代码分享
2017/12/09 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
详解python里的命名规范
2018/07/16 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
flask开启多线程的具体方法
2020/08/02 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
THE OUTNET美国官网:国际设计师品牌折扣网站
2017/03/07 全球购物
eBay德国站:eBay.de
2017/09/14 全球购物
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
集团公司党的群众路线教育实践活动工作总结
2014/03/03 职场文书
开工仪式主持词
2014/03/20 职场文书
买卖协议书范本
2014/04/21 职场文书
2014年单位法制宣传日活动总结
2014/11/01 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
社区母亲节活动总结
2015/02/10 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
python-for x in range的用法(注意要点、细节)
2021/05/10 Python
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL
vue实现登陆页面开发实践
2022/05/30 Vue.js
LeetCode189轮转数组python示例
2022/08/05 Python