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

本文转自:http://darkbaby123.iteye.com/blog/1017580

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

时间: 2024-10-14 02:50:12

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

SSRS (SQL Server Report Service) 在IE9, IE10下显示不全的解决办法

在做项目的过程中遇到SSRS与IE9, IE10不兼容的情况,具体表现为报表页面在IE9 和 IE10下面只显示三分之一,靠左显示,下方有滚动条,右三分之二为空白.查看源代码后发现,上面一个<tr>里只有一个<td>,并colspan=3, 下面报表内容区域的<tr>有三个<td>但前两个是hidden的.最初是想把表格结构调整下,去掉前面hidden的两个<td>,后来发现太麻烦不说,还改变了微软原来的表单内容.就在网上搜索解决方案,微软自己说

ViewPage+frament不预加载下一个Frament数据解决办法

在做一个ViewPage+Frament 滑动数效果,当滑动到每一页时加载哪一页的数据,但是ViewPage会预加载下一也数据,这个问题之前做项目是一直未解决,今天找到一个方法一下子就解决的这个问题,Frament里面有一个setUserVisibleHint方法,setUserVisibleHint每次fragment显示与隐藏都会调用,下面说一下这个方法的使用 @Override public void setUserVisibleHint(boolean isVisibleToUser)

Tomcat启动报错java.net.AbstractPlainSocketImpl(java/net/AbstractPlainSocketImpl.java:178:-1)Struts在网络复杂情况下启动报错解决办法

SSH项目 在网络复杂的情况(具体规律未知)下,Tomcat启动时,报如下错误: [ERROR] 2014-08-12 14:52:58,484 [org.apache.struts2.dispatcher.Dispatcher :27] - Dispatcher initialization failedUnable to load configuration. - Class: java.net.AbstractPlainSocketImplFile: AbstractPlainSocket

IE6/IE7下margin-bottom失效兼容解决办法及双倍边距问题

(从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期 2014-04-08) 一.IE6/IE7下margin-bottom失效兼容解决办法 1.用padding-bottom代替:2.在父标签中加入overflow:hidden:或zoom:100%示例代码: 不正常显示 ul{} li{ list-style:none; float:left; margin:10px;} 1. 你会发现左边10px 变成20px了, 解决办法:在li的CSS中加入:display:inline

js new Date(&#39;yyyy-MM-dd HH:mm:ss&#39;).getTime() 在IE、FF下为NaN的解决办法

今天在一个项目中要做一个倒计时的效果,自己js水平很一般,在网上找了段倒计时代码用了(如下): function CountDown(jqueryObj) { var day_elem = jqueryObj.find('.day'); var hour_elem = jqueryObj.find('.hour'); var minute_elem = jqueryObj.find('.minute'); var second_elem = jqueryObj.find('.second');

windos 下的文件在 linux 下出现 ^M 及解决办法

1.windows 下编辑好的文件 asm_compile.txt,在 linux 下显示如下: $ cat -v asm_compile.txt 1) ml.exe /c /coff /I d:\masm32\include reg_test.asm^M 2) link.exe /subsystem:windows /libpath:d:\masm32\lib reg_test.obj^M ^M 2.解决办法 $ tr -d '\r' < asm_compile.txt > new_comp

前端问题——png图片在IE6下透明失效,解决办法

今天,一位同事问我问题,png 图片在IE6下透明背景失效. 解决办法,在网上查了很多,最后还是采用两种方案来解决这个问题 1.把这个网页的png格式图片变更为gif格式的图片.问题解决 2.就是让这个网页引用一段JS代码,如下: 1 if (!window.XMLHttpRequest) { 2 window.attachEvent("onload", enableAlphaImages); 3 } 4 5 function enableAlphaImages(){ 6 for (v

关于安装python3.6之后,Scripts文件夹下为空的解决办法

问题描述: 电脑重装了系统之后,重新安装的python,按照之后,Scripts文件夹下没用任何东西,是空文件夹. 解决办法:进入如下目录,执行python -m ensurepip这个命令即可解决! C:\Windows\System32>python -m ensurepip 执行完上述命令之后,再查看C:\Python36\Scripts这个文件夹下,多了这些文件 原文地址:https://www.cnblogs.com/lucky-penguin/p/11777408.html

Mac下Gmail不能访问的简单解决办法

思路:Hosts Terminal下输入: curl -s http://freedom.txthinking.com/fuckGFW.py | sudo python 按提示输入密码即可 比较方便,但有时候不一定顶用