这段代码一直工作得很好,直到有一天我同事告诉我,我的模块让他的浏览器崩溃了。我打着手电筒,拿着放大镜在近两千多行的代码中找了又找。.根本找不到问题出在哪里,而且当时对于上面的代码丝毫没有怀疑过。我们div 的id 是从数据库里面直接读取的,为数字类型,比如 <div id="345"></div>等等。对于id 能取什么字符,我以前在 ie6和 ff1.5中测试过,
最后经过反复调试,找到这个罪魁祸首 addRule.document.styleSheets[0].addRule("#a1 *","background-color:red")document.styleSheets[0].addRule("#123 *","background-color:red")都没有任何问题下面这行代码却会让ie死掉. 内存和虚拟内存一直暴涨,我512的内存,一下子xp就提示虚拟内存不够。document.styleSheets[0].addRule("#-1 *","background-color:red");同样,在 ff1.5中,将导致函数出错,但不会崩溃。总结: 1。 ie,ff对 id 的取值相当宽容,id几乎可以是任何字符,中文,英文,字母,数字,负数,特殊字符 2。 但是 addRule 函数中, id为负数时,在 ie和ff都会失败,而且ie会崩溃。附: addRule在 ff中的兼容写法
Powered by: 博客园 Copyright © Go_Rush