ie兼容 - IE版本兼容性问题

查看:238
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆