业务系统中出现一个前台 JavaScript 错误,但在本机开发测试时一切正常。多次测试后发现报错的浏览器是 IE8,而本机测试的是 Chrome 和 IE9 却能正常运行。
经跟踪调试后发现,错误是在一个自定义类的属性上,这个属性名是:switch,而 switch 又刚好是 JS 的关键字。看来是 IE8 判断错误导致。
写个代码测试一下:
var o = { true:1 };
alert(o.true);
果然,只在 IE8 及以下版本中报错,IE9 和其它内核浏览器都可正常运行:弹出消息框,显示1
虽然是 IE8 的 Bug ,不过用关键字来命名的确是个不好的习惯,一定要改正。
备忘备忘!