要在旧系统中加一个jquery插件,本地demo测试没问题,部署到服务器后却报错。使用的是IE9浏览器,打开F12调试台,发现默认的文档模式是IE7,调成IE9后,报错消失。可以确认是该插件不兼容IE7造成的。
有一个重大的疑惑,明明是IE9浏览器,打开后怎么会默认是IE7模式呢?
很快,在我翻看旧系统的代码时,这个疑惑稍稍有点眉目,看到了这样的一句:<meta http-equiv="X-UA-Compatible" content="IE=7" />,原来此标签正是设置文档用IE7来解析,究其原因,是一个历史问题。在IE8刚刚发布还未稳定之时,有些网页都不能正常显示,于是眉毛胡子一把抓,强制令其使用IE7来解析,已到达在IE8下正常显示的目的,详细请参考这里。
为什么说稍稍有点眉目呢?因为我想既然是这货引起的,而且现在IE11都出来了,还要你有何干,直接删掉!是哪个版本的IE就让它用哪个版本来解析,这样IE9下就会正常解析了。然而结果却没有按照我想的那样出现。打开网页后默认的文档模式仍然是IE7!阴魂不散啊!我从网上搜了一下如何设置IE9默认文档模式,没有找到满意的。只有这一个同样是眉毛胡子一把抓的方法:<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" >,强制使用IE9!继承古人的优良传统。。。
打开我的IE9,正常了!默认文档模式华丽丽的显示为IE9 。good job!
等等,那如过我用的是IE8呢?够不着所设置的版本会怎么样。来试一下,结果在IE8下会默认使用IE8文档模式,IE8挺挺聪明的嘛!
到这里问题算是临时解决了。但还是没有从根本上解决。等将来IE12、IE13发布的时候,难道再让后辈一把抓?
抛砖引玉,欢迎大牛们指点。