碰到一个问题,我们的一个项目是用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。
参考文档:
这个介绍的比较全面,什么是兼容性模式,怎么判断,怎么设定都有涉及,甚至包括怎么在web server中指定兼容性模式……
IE's Compability Features for Site Developers
介绍了几种浏览器模式(browser mode)和文档模式(document mode)。我主要是看这篇里面的几种文档模式区别的。
注:本文档转载自:http://darkbaby123.iteye.com/blog/1017580
相关推荐
项目中遇到Extjs3.0在IE9中不兼容,现有两种解决方法
ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败。ExtJS4 已完全重新写 grid ...
综上所述,"ExtJs4.2 Tomcat可运行API"提供了在MyEclipse环境下开发和部署基于ExtJs4.2的Web应用的完整流程。开发者可以通过API文档深入学习ExtJs的各种组件和功能,结合Tomcat服务器实现Web应用的发布和运行,同时...
extjs中,经常会用到datefield组件控制用户对日期的操作,比如日志管理,需要开始时间、结束时间,但是IE8下日期选择框会显示不全,解决方法参加代码。 同时改代码解决了开始时间、结束时间的时间范围控制的问题,即...
就是extjs4里面,想给grid里面一格中,文字后面加个小图标。 因为俺们项目就只是文字+图标,所以俺就没有复写Actioncolumn,而是从Column下面继承了一下。。 包含自定义插件源码、效果图等等。
在这个系统中,你可以看到如何利用ExtJs3的组件库来构建各种用户界面元素,如表格、表单、树形结构以及数据绑定等功能。 首先,让我们深入了解一下ExtJs3的核心特性。ExtJs3提供了一个丰富的组件模型,包括各种UI...
- 需要对原有代码进行修改,确保其能够在新版本中正常运行。 2. **UploadDialog组件** - `UploadDialog`是一种用于实现文件上传功能的对话框组件。 - 它支持同时上传多个文件,提高了用户体验。 3. **事件队列...
ExtJS 3 是一个流行的JavaScript库,用于构建富客户端应用程序,尤其在数据网格和用户界面组件方面表现出色。"rowspan"属性在HTML表格中被用来合并行,而在ExtJS 3中,它用于实现类似的功能,即在数据网格的表头中...
只要将解压的文件直接放置到myeclipse的webroot下面,启动tomcat访问。简单的EXTJS mvc框架,设计 store,model,controller,view,window等等,同时展示了一些基本的点击显示、修改等等操作,需要的同学自行下载
但是,在使用 ExtJS 的 GridPanel 组件时,可能会遇到单元格无法选中复制的问题,特别是在 IE 浏览器中。今天,我们将讨论如何解决这个问题。 ExtJS GridPanel 单元格无法选中复制的问题产生的原因是由于每个单元格...
extjs3中文手册 最新的extjs3版本的中文手册
项目进行前端框架升级——extJS 4升级至extJS6.6所遇的一些问题及相对应的解决方案建议
通过下载和研究ExtJS 3的源文件,开发者不仅可以学习到JavaScript的高级用法,还能深入理解前端开发的最佳实践,以及如何构建可维护和高性能的Web应用。对于希望提升JavaScript技能或从事富客户端Web开发的人来说,...
在这个"ExtJs运行环境"中,我们重点讨论的是基于4.2.1版本的ExtJs。 首先,ExtJs 4.2.1是该框架的一个稳定版本,它包含了大量优化和改进。在这一版本中,开发者可以找到诸如Grid面板、表单组件、树形视图、图表等...
通过上述代码的实现,可以有效解决Extjs 2.2.1版本中`datefield`控件在IE8环境下显示不全的问题。关键在于正确检测浏览器类型,并对菜单的宽度计算逻辑进行了适当的调整。这种方式不仅解决了兼容性问题,也保证了...
6. **浏览器兼容性**:确保所选皮肤在主流浏览器上都能正常工作,如Chrome、Firefox、IE(至少到一定版本)等,因为不同的浏览器可能会对CSS和JavaScript有不同的解析方式。 7. **无障碍性**:在选择和应用皮肤时,...
4. 如果配置正确,官方实例应该能正常运行,展示各种MVC应用场景。 **源代码分析:** 源代码中包含了多个示例,每个示例都有对应的模型、视图、控制器和配置文件。开发者可以通过阅读和调试这些代码,深入理解ExtJS...
在面对这种问题时,测试人员需要寻找替代的解决方案。这里提到的一种方法是利用Selenium IDE的扩展(Extensions)功能。这种方法涉及到对Selenium IDE进行自定义,以适应ExtJs特有的行为。 首先,我们来看一下如何...