ie兼容 - IE版本兼容性问题
问题描述
我的问题并不是什么具体的代码问题,我只是想请教一下关于IE兼容性的知识,最近公司丢给我一个2011年的项目,是个基于B/S的补丁管理项目,我的系统安装的IE版本是IE11,但实际改动这个平台的页面时,却会发生一些IE8,IE7的兼容性问题,比如使用font-awesome时,需要增加IE7兼容的js文件才能使用fa,比如使用getElementsByClassName时,浏览器会直接报不支持这个方法的错。页面的html版本时HTML 4.01,请问有哪位能稍微讲解一下这个原因吗?谢谢了。
感谢依云和boxsnake的回答,虽然依云的回答已经足够了,但也同样感谢boxsnake提供细致的解决方案:-)
确实是浏览器兼容模式的问题,IE开启了兼容模式,打开IE开发者工具可以看到右侧有个指示当前IE版本的下拉框,居然看到的是IE5。。这个是可以通过IE的设置关闭兼容模式的,不过我这边一关闭控制台就跳出一排排红字,老项目连js加载都有问题。要解决这个问题自然就是使用ie兼容的方法了,也就是boxsnake说的polyfill。比如addEventListener要考虑IE7的attachEvent,捕获事件要使用var evt = e || window.event,冒泡,preventDefautl这些也要重新处理。大部分问题的解决方案StackOverflow里基本都有(我是伸手党,羞),只要加上ie7的后缀。但其实我觉得最好还是在api保持不变的情况下一点点把IE踢出去降低维护成本。
虽然jquery应该是能有效处理这些问题的,但如果js不熟的话,在条件允许的情况下还是老老实实走js的路吧,夯实基础很重要:-)
这篇关于ie兼容 - IE版本兼容性问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!