微信网页调试小记

近期在用mater-ui(react)开发一个用于手机端的网页,遇到了一些坑,记录一下。

提交表单的时候,按钮无论如何也点击不动,由于微信中浏览器的特殊性,一直没找到合适的调试方式。
在chrome中和安卓上都运行的没问题,到了ios平台的微信网页中没报错,按钮就是点不动。
经过多次调试探究,在表单提交的回调函数中直接alert(err)

ws.insert(obj, function (err, result) {
                if (err) {
                    console.log(" ws insert  err:", err,"insert ws is::\n", worklist);
                    res = Meteor.call("logxxx" ,JSON.stringify(err)  );
                    console.log("   res :", res);
                    //alert(JSON.stringify(err.reason))
                    alert("非常抱歉,出现异常 :",JSON.stringify(err));

                } else {
                    console.log("   insert obj  successs :", "");
                    FlowRouter.go('/myhome')
                }
            })

将以上代码进行修改为

                if (err) {
                    alert(err);
                } else {
                    FlowRouter.go('/myhome')
                }

原因探析:
文档中(如下)写到,如果inserterror就会返回一个err object ,之前遇到的err都是一个obj对象,真正的错误信息在err.reason,这里的err直接是错误信息,不需要json处理,这里是个大坑.

collection.insert(doc, [callback])
Insert a document in the collection. Returns its unique _id.

Arguments
doc Object
The document to insert. May not yet have an _id attribute, in which case Meteor will generate one for you.

callback Function
Optional. If present, called with an error object as the first argument and, if no error, the _id as the second.

修改后,得到的错误信息是:
xxx不是时间类型。
“2015-08-18 08:08”

知道真相的我心中顿时觉得一万只草泥马奔腾而过,chrome,安卓和wp都认识的格式到了你家平台上就不认识了,呵呵呵。。。。

几点总结:
1:搞特殊标准的浏览器大多特码有病,但是又绕不过这个坑
2:用最原始的调试方式可能是最高效的,比如不加其他信息直接alert错误
3:此种错误可用服务器端打印的方式来排查,不一定好用
4:经验主义害死人,多看文档,但是又不能全信文档。
5:据不可靠消息双击home杀死进程可清理微信浏览器的缓存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值