今天碰到一个问题,我们的一个项目是用ExtJS做的,但在IE9下几乎完全不能用。排除Bug半天后才发现是ExtJS本身就无法在IE9下正常运行。抛开一些细小的问题,最典型的就是TreePanel根本无法使用,节点都无法点开……google了一下,ExtJS的论坛里报了这个Bug,但貌似还没有完美的解决方案。
改ExtJS代价太大了,不如换一种思考方式,让IE9以兼容性模式运行,ExtJS完全没问题。于是便琢磨怎么在页面加载时就告诉IE9运行兼容性模式。好在IE官网就提供相关的信息。不得不说微软的MSDN还是挺不错的,虽然浏览器一直做的不咋地……
办法很简单,在head标签的第一行加入以下meta标签:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
</head>
<body>
..
</body>
</html>
这样,IE9就会以IE8的文档模式来解析html。最好把这个meta放在head的第一行,否则不会产生效果。实际上,MSDN的文档说只要放在head中除了title和meta的所有其他标签之前就行,不过我试过好像没用,所以为了保险,还是放第一个吧。以下是MSDN文档的原话:
it must appear in the header of the webpage (the HEAD section) before all other elements except for the title element and other meta elements.
另外,如果不清楚IE9运行在什么模式下的话,可以使用 document.documentMode 来查看IE9的运行模式,如果是IE9标准模式就会返回9,IE8模式则返回8。以此类推。
注:严格来说,此方法实际上是改变文档模式(document mode),而不是浏览器模式(browser mode)。实际上,IE9的兼容性模式是指的浏览器模式。对这两者的区别,有兴趣的可以去看看MSDN。
参考文档:
Define Document Compability
这个介绍的比较全面,什么是兼容性模式,怎么判断,怎么设定都有涉及,甚至包括怎么在web server中指定兼容性模式……
IE's Compability Features for Site Developers
介绍了几种浏览器模式(browser mode)和文档模式(document mode)。我主要是看这篇里面的几种文档模式区别的。
分享到:
相关推荐
项目中遇到Extjs3.0在IE9中不兼容,现有两种解决方法
extJs3升级extjs4方案, extJs3升级extjs4需要修改大量代码
就是extjs4里面,想给grid里面一格中,文字后面加个小图标。 因为俺们项目就只是文字+图标,所以俺就没有复写Actioncolumn,而是从Column下面继承了一下。。 包含自定义插件源码、效果图等等。
Selenium IDE测试ExtJs一种测试解决办法
只要将解压的文件直接放置到myeclipse的webroot下面,启动tomcat访问。简单的EXTJS mvc框架,设计 store,model,controller,view,window等等,同时展示了一些基本的点击显示、修改等等操作,需要的同学自行下载
ExtJs4.2 API 可部署到myeclipse上运行.
项目进行前端框架升级——extJS 4升级至extJS6.6所遇的一些问题及相对应的解决方案建议
解决extjs中的GridPanel的单元格在IE无法选中复制的问题
ExtJs3 0官方版
Extjs3 多选下拉框LovCombo,Extjs3 多选下拉框LovCombo
ExtJs3实现、简洁的、静态数据模拟的员工管理系统
EXTJS应用EXTJS应用EXTJS应用EXTJS应用EXTJS应用EXTJS应用
extjs 简单框架搭建
extjs资料extjs资料extjs资料extjs资料extjs资料
从项目中提取的extjs 比较简单的 的简单实例
从网上搜集的一些好用的js文件。分享给爱好EXTJS的同胞们! EXTJS4.0文件夹下面包括 1.只有年月选择--dateYM.html (这个在EXTJS4.0和4.1...注:这些功能在IE6 、 IE8 、 Firefox 以及google 浏览器下测试没有问题!
3、通过实现角色管理、用户管理、部门管理三个基础的功能模块,演示了Viewport、Container、Panel、Grid、Window、Form、Tree等常用组件的用法,以及border、column、form、fit、accordion、hbox等常用布局方式;...
Extjs例子Extjs例子Extjs例子Extjs例子Extjs例子
asp程序结合框架extjs,快速上手,简单易懂。 运行时注意需改extjs引入路径。
这是一个ExtJs的运行环境,基于版本为4.2.1