ie兼容问题整理

时间:2023-03-08 16:41:42

1.连续发请求问题

*  jquery(document).ready(function(){})
*  连续发请求ie8出问题,被拦截问题,url后边加时间戳
   *  例  url : url+"?t="+(Date.parse(new Date()) ),

2. $().data() 及select渲染问题

* select 渲染后没法影藏(加一个父节点包裹起来,影藏父节点)
* jquery('ele').data() 在ie8中只能获取到第一个data-的key-value值

3. 一些常见问题

* 1、form自动提交,input最好不要有value=""配置,同样如果一个表单中只有一个单行文本输入域(text),那么在这个输入域中按Enter键时,浏览器会自动提交该表单,解决方法就是加入一个影藏的input框(<input type="text" style="display:none;"/>)。
* 2、ie中checkbox遮罩层不起作用,给遮罩层加属性background-color:white
* 3、self.serviceOrderTrigger.trigger('click');//触发点击事件
* 4、css3动画transform类型一定要加前缀(如ie9不支持不加-ms的动画)
* 5、console.log一定要去掉,ie不支持出现兼容性问题

4. ie不支持jquery().remove()方法兼容处理

if(selectTarget.closest('td').children()[1]){
var navigatorName = "Microsoft Internet Explorer";
if(navigator.appName == navigatorName){
selectTarget.closest('td').children()[1].removeNode(true);
}else{
selectTarget.closest('td').children()[1].remove();//解决点击上下架后其他行select无法正常操作,采取先删除再重新渲染的方法
}
}

5.ie不支持hide()方法,用display:none代替

6.设置锚点

html代码
<div id="J_detail"></div> js实现锚点定位
/**
* 页面初始化时根据是否查询(url是否带参数)来定位聚焦模块
*/
initPosition:function(){
var url = location.search; //获取url中"?"符后的字串
if (url.indexOf("?") != -1) {
document.getElementById('J_detail').scrollIntoView();
}
},

7.判断对象是否为空及页面同步跳转方法

if($.isEmptyObject(paramsType)){
window.location.href = "onlineCommodity4Koubei.htm";//全部
}else{
window.location.search = $.param(paramsType); }

8.浏览器及版本判断

<script>
// 判断ie6-8
var browser=navigator.appName
var b_version=navigator.appVersion
var version=b_version.split(";");
var trim_Version=version[1].replace(/[ ]/g,"");
if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE6.0")
{
alert("您当前使用的浏览器版本过低,无法正常使用平台功能,推荐使用chrome浏览器或IE9以上版本。");
}
else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE7.0")
{
alert("您当前使用的浏览器版本过低,无法正常使用平台功能,推荐使用chrome浏览器或IE9以上版本。");
}
else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE8.0")
{
alert("您当前使用的浏览器版本过低,无法正常使用平台功能,推荐使用chrome浏览器或IE9以上版本。");
} </script>