前几天写的一段Vue,在ie下一片空白,f12显示script1003: expected :
。
baidu、google之,说是json最后一项有多余的逗号,例如
{
a: 5,
b: 4, // 最后一项不能有逗号
}
检索修正所有js文件不表,然而情况依旧。。。
没办法了,祭出无敌睿智debug技巧: 全文注释掉,再一行一行解掉注释,终于定位到bug位置: 一个自定义右键菜单的插件(v-contextmenu
)有问题。。。
继续先前的睿智debug技巧,终于发现,好几个bug。。。
- 该插件下,所有对象最后一项都有逗号,导致在ie下不兼容
{
a: 5,
b: 4, // 这个逗号要删除
}
- 该插件的export default语法与ie不兼容
// ie下不支持这种语法
export default {
bind() {}
}
// 必须在外面定义 function bind() {} 然后
export default {
bind: bind
}
// 特别告诫,下面这种语法在ie中也是不支持的
export default {
bind
}
- 最重要的,这个插件在一个很隐蔽的地方有这么两行代码
if(condition) {
someArray.push({ a, b })
} else {
anotherArray.push({ a, b })
}
而{ a, b }
这种语法是ie不支持的,必须改成{ a: a, b: b }
一个上午就这么浪费了,你以为我要喷这个插件?我想说,谁用ie谁是狗?
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。