使用微信内置浏览器点击下拉框出现页面乱跳转现象(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 相关文章推荐
关于Aptana Studio生成自动备份文件的解决办法
Dec 23 Javascript
css与javascript跨浏览器兼容性总结
Sep 15 Javascript
Python脚本后台运行的几种方式
Mar 09 Javascript
jQuery动态生成Bootstrap表格
Nov 01 Javascript
利用jquery实现下拉框的禁用与启用
Dec 07 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
Jul 11 Javascript
谈谈JavaScript中super(props)的重要性
Feb 12 Javascript
基于layPage插件实现两种分页方式浅析
Jul 27 Javascript
JS数组方法push()、pop()用法实例分析
Jan 18 Javascript
JavaScript canvas动画实现时钟效果
Feb 10 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
Jul 18 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
Jul 20 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与SQL注入攻击[二]
2007/04/17 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
php更新修改excel中的内容实例代码
2014/02/26 PHP
php 使用GD库为页面增加水印示例代码
2014/03/24 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
经验几则 推荐
2006/09/05 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
JQuery控制DIV的选取实现方法
2016/09/18 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
JavaScript插件Tab选项卡效果
2017/11/14 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
vue3.0自定义指令(drectives)知识点总结
2020/12/27 Vue.js
Python使用MYSQLDB实现从数据库中导出XML文件的方法
2015/05/11 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
Waterford加拿大官方网站:世界著名的水晶杯品牌
2016/11/01 全球购物
.net面试题
2015/12/22 面试题
学前教育专业毕业生自荐信
2013/10/03 职场文书
大学四年学习的自我评价分享
2013/12/09 职场文书
查环查孕证明
2014/01/10 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
地方课程教学计划
2015/01/19 职场文书
元旦晚会主持词开场白
2015/05/28 职场文书
2015年国庆晚会主持词
2015/07/01 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫