被IE支配的恐惧

这两天改前端,平时习惯拿谷歌和opera调试,今天突然想到有个表格的宽没定好,有点丑,就打开几个浏览器一同看效果,然后就被IE整崩溃了,总是出现 属性“xxx”的值为 null、未定义或不是 Function 对象这个错,简单的一个onclick=”xxx()”都没有效果。

首先,我的js代码绝对没问题,因为其他浏览器正常都没问题,而且就算清除方法内容单单写一个alert也还是报一样的错。后来我改了方法名,重新刷新,刷新一下之后短暂地不报错并且成功走了我的js代码,但一切换或刷新又报错,一开始我以为是ie8的问题,切换调试工具为ie11发现的确ie11不报错,但也没有走我的方法,只是它没找到方法直接跳转到下一页面并且没有告诉你它没找到,真的是太草率了一点吧这个IE???

花了半天时间解决了这个问题,总结归纳如下几步:

1)确保js代码无误,方法名没有写错,或是方法里有什么语法错误。

2)判断问题是出在IE8兼容上还是IE的通病,通过F12右上角一个下拉选项可以切换调试版本,默认是8,这也是最蛋疼的一点。

3)若是ie8独有的问题,那么就自行百度如何处理吧,如果是所有版本都存在的问题,或是像我一样时灵时不灵的情况,这是浏览器缓存导致的,js代码修改过但是浏览器只加载最初的js,这个靠刷新是没有效果的,

清缓存步骤:设置-Internet选项-常规-删除,就会跳出删除浏览历史记录的窗口,把下载历史记录、表单数据都勾上,确认删除,等待几秒后就会弹出“Internet Explorer已完成删除所选的浏览历史记录”,这时再刷新就一切恢复正常了。

后续:经过反复清缓存又重跑代码,最终觉得还是有代码本身的问题,页面上的表单用s标签提交,而我却欲用ajax,并把事件触发在submit上,感觉可能是冲突了,【我不信!那为啥什么也不写只有一句alert还是会报错@-@,还是要靠清缓存】,总之这个问题第二天在我放弃了ajax提交之后就悄悄地解决了,也没有发生昨天的情况,程序员的谎言:“我真的没有改代码!”orz