ES5
低版本浏览器兼容 ES5 的一些属性、方法,引入:<!--[if lt IE 9]>
<script src="//cdn.bootcss.com/es5-shim/4.5.9/es5-shim.min.js"></script>
<script src="//cdn.bootcss.com/es5-shim/4.5.9/es5-sham.min.js"></script>
<![endif]-->
ajax请求参数
在低版本浏览器中,ajax get 请求参数含有中文字符转码后字符太长,后端获取不到参数,可改用 post;
echarts
图表插件 echarts,在低版本浏览器中报 js 错误(fiflter 未定义…),可以通过引入es5-array.js 插件解决;
跨域
ajax 在 ie8,ie9 下不能跨域,引入 jquery.xdomainrequest.min.js 解决;<!--[if lt IE 9]>
<script src="//cdn.bootcss.com/jquery-ajaxtransport-xdomainrequest/1.0.4/jquery.xdomainrequest.min.js"></script>
<![endif]-->
ie8,9 进行跨域post请求,参数无法传递解决办法
jquery的ajax方法添加 crossDomain: true == !(document.all) 例如:$.ajax({
url: url,
type: 'POST',
data: params,
dataType: 'json',
contentType: "application/json",
crossDomain: true == !(document.all),
success: function (res) {
...
},
error: function (err) {
...
}
})
IE跨域下出现{“readyState”:0,”status”:0,”TypeError”…}
对浏览器进行设置 工具->Internet选项->安全->自定义级别->其他->通过域访问数据源->启用
键盘事件
ie8 浏览器下不识别键盘事件中的 event.which ,用 event.which||event.keyCode;
input的placeholder
文本框的 placeholder 在 ie8 之下失效,可以通过引入 placeholder.js 来解决;<!--[if lt IE 9]>
<script src="//cdn.bootcss.com/placeholders/4.0.1/placeholders.jquery.min.js"></script>
<![endif]-->
兼容IE8不直接使用sessionStorage,localStorage
使用公用方法,使用办法如下:function setKeyItem(key,value) {
if (window.sessionStorage){
sessionStorage.setItem(key,value);
}else{
setCookie(key,value,TimeoutCookie)
}
}
“JSON”未定义
引入json2.js
注:本模板已经引入
下载地址:https://github.com/douglascrockford/JSON-js
其它
- jquery 版本选择低于 2.0
- ajax 请求,中文编码问题(encodeUrl)