由于客户的需求,撬开棺材板把IE6又搬出来鞭尸,发现原来的一段js程序报非法访问错误。原来是由于里面一个数组的声明不严谨:
var v = [ 'aaa',];
注意数组声明里最后的一个逗号!
这个数组v在现在的浏览器(IE8/9,firefox5+,chrome12+等)中都只有一个 元素,v.length的值为1。和没有那个逗号没什么不同。
但是!在IE6中,v中只有一个元素,v[0]有效,但v.length的值为2!
于是下面一段code:
for(int i = 0; i < v.length; i++)
v.xxx = 'xxx';
执行时,会访问不存在的v[1]从而造成非法访问错误!
立照留念...