【实战问题】【10】IE浏览器兼容问题,发布后变成了(浏览器IE9兼容模式,文档IE7标准模式)
起因:
近期发生一件特别无语的事,我写的程序在本地运行的时候在IE浏览器打开是IE9标准模式,发布到服务器之后再在IE浏览器打开,就变成了兼容模式,一步步改好之后在图片上传那里又卡了好久,最后都改好了之后,发现了问题所在,我的问题可能不适用于所有情况,仅给大家参考一下
我的问题很简单:我用了lanternFQ,关了就好了
过程:
1,所有和ajax这种格式的一样的,最后一项(此处为success)都不要加逗号(,)。
$.ajax({ type : "POST", url : "address" , success : function(result){ alert("成功"); } });
2,get方式(即请求数据)时,IE浏览器会记住缓存
解决方案一:如果是上面那种ajax加上cache: false,
解决方案二:加时间戳
var timeStamp = (new Date()).valueOf(); $.get("address" + page + "?t=" + timeStamp, function(data) { });
3,关于IE的兼容性模式和标准模式
我个人的理解是,浏览器模式影响的是java代码,文档模式影响的是js,css代码。以及,所谓的IE9兼容模式就是IE7内核
(1)终于找到IE10 Browser Mode为IE10 compat View的真相 - dudu - 博客园 http://www.cnblogs.com/dudu/archive/2012/11/24/ie10-browser-mode.html
(2)IE9的浏览器模式和文档模式 - 坚持139 - 博客园 http://www.cnblogs.com/zhoukaiwei/archive/2013/05/21/3090587.html
4,浏览器模式直接用程序是改不了的(也许是我没找到),文档模式是可以改的
改文档模式:
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
(1)强制不使用“兼容性视图”的HTML代码 - hsany330的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/hsany330/article/details/40716911
(2)再谈IE的浏览器模式和文档模式 - BobLiu - 博客园 http://www.cnblogs.com/liuzhendong/archive/2012/04/27/2474363.html
5,在IE9兼容模式下,上传会提示是否下载。
解决方案如下:
首先,我用的是ajaxfileupload.js插件(事实证明这个插件真不咋地)
其次,在spring的配置文件里这样配置
<mvc:annotation-driven ignore-default-model-on-redirect="true" > <mvc:message-converters register-defaults="false"> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" /> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" /> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes" value="application/json;charset=UTF-8" /> </bean> </mvc:message-converters> </mvc:annotation-driven>
(1)Spring mvc 返回JSON 在IE 下提示下载 解决办法 - 大道自然 - BlogJava http://www.blogjava.net/iamlibo/archive/2013/11/21/406646.html
(2)spring MVC 3.1 注解:@ResponseBody 返回json数据 - - ITeye技术网站 http://yjflfliulei.iteye.com/blog/1755134
6,360浏览器的内核
我还没有用到,先放到这里记录下:
content的取值为webkit,ie-comp,ie-stand之一,区分大小写,分别代表用webkit内核,IE兼容内核,IE标准内核。
若页面需默认用极速核,增加标签:<meta name="renderer" content="webkit">
若页面需默认用ie兼容内核,增加标签:<meta name="renderer" content="ie-comp">
若页面需默认用ie标准内核,增加标签:<meta name="renderer" content="ie-stand">
(1)浏览器内核控制meta name="renderer" 说明文档 http://m.blog.csdn.net/article/details?id=51531263
7,我还不太理解,也没用到,先存个档
(1)强制IE浏览器或WebBrowser控件使用指定版本显示网页
http://blog.useasp.net/archive/2013/05/30/force-ie8-or-higher-or-webBrowser-control-use-specific-version-to-display-pages.aspx