`
darkbaby123
  • 浏览: 104080 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ExtJS 3 不能在IE9下正常运行的简单解决办法

阅读更多

今天碰到一个问题,我们的一个项目是用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)。我主要是看这篇里面的几种文档模式区别的。

 

4
3
分享到:
评论
1 楼 anyasir 2013-03-12  
感谢分享!
这个不兼容问题让人头疼

相关推荐

    解决Extjs3.0不兼容IE9

    项目中遇到Extjs3.0在IE9中不兼容,现有两种解决方法

    extJs3升级extjs4方案

    ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败。ExtJS4 已完全重新写 grid ...

    ExtJs4.2 Tomcat可运行API

    综上所述,"ExtJs4.2 Tomcat可运行API"提供了在MyEclipse环境下开发和部署基于ExtJs4.2的Web应用的完整流程。开发者可以通过API文档深入学习ExtJs的各种组件和功能,结合Tomcat服务器实现Web应用的发布和运行,同时...

    解决datefield组件 日期选择框在IE8下显示不完整的问题

    extjs中,经常会用到datefield组件控制用户对日期的操作,比如日志管理,需要开始时间、结束时间,但是IE8下日期选择框会显示不全,解决方法参加代码。 同时改代码解决了开始时间、结束时间的时间范围控制的问题,即...

    EXTJS4 Actioncolumn不能使用文字的部分解决办法

    就是extjs4里面,想给grid里面一格中,文字后面加个小图标。 因为俺们项目就只是文字+图标,所以俺就没有复写Actioncolumn,而是从Column下面继承了一下。。 包含自定义插件源码、效果图等等。

    ExtJs3 演示系统

    在这个系统中,你可以看到如何利用ExtJs3的组件库来构建各种用户界面元素,如表格、表单、树形结构以及数据绑定等功能。 首先,让我们深入了解一下ExtJs3的核心特性。ExtJs3提供了一个丰富的组件模型,包括各种UI...

    ExtJS 多文件上传 UploadDialog For ExtJS3.x

    - 需要对原有代码进行修改,确保其能够在新版本中正常运行。 2. **UploadDialog组件** - `UploadDialog`是一种用于实现文件上传功能的对话框组件。 - 它支持同时上传多个文件,提高了用户体验。 3. **事件队列...

    extjs3合并表头 rowspan

    ExtJS 3 是一个流行的JavaScript库,用于构建富客户端应用程序,尤其在数据网格和用户界面组件方面表现出色。"rowspan"属性在HTML表格中被用来合并行,而在ExtJS 3中,它用于实现类似的功能,即在数据网格的表头中...

    EXTJS简单MVC实例

    只要将解压的文件直接放置到myeclipse的webroot下面,启动tomcat访问。简单的EXTJS mvc框架,设计 store,model,controller,view,window等等,同时展示了一些基本的点击显示、修改等等操作,需要的同学自行下载

    extjs单元格无法复制

    但是,在使用 ExtJS 的 GridPanel 组件时,可能会遇到单元格无法选中复制的问题,特别是在 IE 浏览器中。今天,我们将讨论如何解决这个问题。 ExtJS GridPanel 单元格无法选中复制的问题产生的原因是由于每个单元格...

    extjs3中文手册

    extjs3中文手册 最新的extjs3版本的中文手册

    extJS4升级至extJS6.6所遇问题及解决方案

    项目进行前端框架升级——extJS 4升级至extJS6.6所遇的一些问题及相对应的解决方案建议

    extjs3源文件下载

    通过下载和研究ExtJS 3的源文件,开发者不仅可以学习到JavaScript的高级用法,还能深入理解前端开发的最佳实践,以及如何构建可维护和高性能的Web应用。对于希望提升JavaScript技能或从事富客户端Web开发的人来说,...

    ExtJs运行环境

    在这个"ExtJs运行环境"中,我们重点讨论的是基于4.2.1版本的ExtJs。 首先,ExtJs 4.2.1是该框架的一个稳定版本,它包含了大量优化和改进。在这一版本中,开发者可以找到诸如Grid面板、表单组件、树形视图、图表等...

    Exjts2.2.1中datefield控件在IE8下显示不全BUG

    通过上述代码的实现,可以有效解决Extjs 2.2.1版本中`datefield`控件在IE8环境下显示不全的问题。关键在于正确检测浏览器类型,并对菜单的宽度计算逻辑进行了适当的调整。这种方式不仅解决了兼容性问题,也保证了...

    Extjs3X皮肤19种.rar

    6. **浏览器兼容性**:确保所选皮肤在主流浏览器上都能正常工作,如Chrome、Firefox、IE(至少到一定版本)等,因为不同的浏览器可能会对CSS和JavaScript有不同的解析方式。 7. **无障碍性**:在选择和应用皮肤时,...

    Extjs4 MVC 官方实例整合 未改动 未删减 部署即可运行

    4. 如果配置正确,官方实例应该能正常运行,展示各种MVC应用场景。 **源代码分析:** 源代码中包含了多个示例,每个示例都有对应的模型、视图、控制器和配置文件。开发者可以通过阅读和调试这些代码,深入理解ExtJS...

    Selenium IDE测试ExtJs一种测试解决办法.docx

    在面对这种问题时,测试人员需要寻找替代的解决方案。这里提到的一种方法是利用Selenium IDE的扩展(Extensions)功能。这种方法涉及到对Selenium IDE进行自定义,以适应ExtJs特有的行为。 首先,我们来看一下如何...

    ExtJS3X最新中文书籍.rar

    ExtJS 是一个强大的JavaScript库,专门用于构建富客户端Web应用程序。3X版本是该库的一个较早但仍然广泛使用...同时,对于已经熟悉JavaScript基础的开发者,这本书也会帮助他们快速上手并提升在ExtJS框架下的开发能力。

Global site tag (gtag.js) - Google Analytics