都是自己遇到的坑,记录总结下。每个坑都是一次血泪史,不过爬坑的过程也是收获最大的时候。
微信bug集锦
微信预览图片接口的参数:current urls的值必须带协议名:https或http,不能用”//“,否则微信中无法预览大图。
1234wx.previewImage({current: '', // 当前显示图片的链接,必须带https或http,不能用"//"urls: [] // 需要预览的图片链接数组,必须带https或http,不能用"//"});微信分享的图片,只能用http。否则分享的小图出不来。
- 安卓微信客户端,缓存严重,window.location.reload无效。调试的话,最好在iOS下测。必须要刷新的话,更改时间戳或者更改URL名称。
小程序bug集锦
小程序中变量的生命周期不太懂。
123456789101112let floorData=[];Page({onLoad:function(){.....//在onload函数中若是不对floorData重新初始化,在用户第二次进入这个小程序页面时,floorData并不为空。floorData.push(data);//改成下面这样,先清空floorData=[];floorData.push(data);}})wx.request的method方法为get时,必须全大写,否则,部分安卓机下不发请求。
12345request.send({url: 'https://w.midea.com/sinclude/data/promote/'+pageId+'.js?t='+timeStamp,data: {},method: 'GET' //必须大写})wx.request的method方法为post时,需要设置头部Contenttype,必须驼峰和全小写的都设置上,某些手机(如小米)并不认识驼峰。
123456if(method=='post'){if(!conf.header['Content-Type']){conf.header['Content-Type']="application/x-www-form-urlencode";}conf.header['content-type']=conf.header['Content-Type'];}安卓下,点击模态框确认、取消都执行确认操作的解决方法:
123456789wx.showModal({title:'提示',content:'确认已收到货?',success:function(res){if(res.confirm===1 || res.confirm===true || res.confirm==="true"){//确认}}});调用navigateTo到一个新页面后,不能马上使用redirectTo到另一个新的页面,需要等一段时间(500ms),才能正确跳转。
数字操作,涉及到计算、比较等,最好用parseFloat转换一下。因为在js中数字很容易变成字符串,例如:取表单数据进行比较等。还有浮点数精度问题,最好不要在js中处理计算问题。在PHP中,可以用(string)(number) ,将数字转成字符串,避免精度丢失。
IE8 bug集
ie8的bug只能去网上查,没别的招~~~主要是css和脚本兼容性问题。css的问题居多,脚本的一般都会报错。
优雅降级。css3和HTML5的属性,如果不支持,要有替代方案。
调试方法:点启动调试,如果脚本有问题,控制台会报错。
全局变量:
12var confirmReminder = $.mpopup({id : 'confirmReminder'}); //一不小心形成的全局变量confirmCutReminder = $.mpopup({id : 'confirmCutReminder'});对象最后一个属性后面的逗号:
1234data: {itemid: window.strFiid,areacode : window.addrCode, //这个逗号会报错},IE8没有网络面板,可以用fiddler看网络加载情况。
display:inline-block 在IE8中会换行。
123display:inline-block;*display: inline; //是为了让块元素排成一行*zoom:1;//触发hasLayout,能够支持设置宽、高、line-height等一系列属性console.log IE8不支持,但打开控制台后,就支持了。所以,调试的时候可以加console.log,但发布的时候一定要去掉。
- 数组的es5新增方法不能用:例如:indexOf ,但字符串的indexOf是可以用的。
- IE8 float:right会换行,要把float:left的也加上
- IE8的z-index:一旦在IE8中使用了z-index,就要特别留意。留意使用z-index的块元素的父类是否也使用的z-index。如果父元素没有设置同样等值的z-index的话,那么将会有可能被下面的块元素所覆盖。
- 当Table中td内容为空时,显示边框的办法: 12border-collapse:collapse; //tableempty-cells:show; //td
遇到什么就记了什么。。。以后也会记下去吧