部分属性及方法的浏览器兼容问题
1、兼容问题
属性|方法 | IE | Chrome |
360兼容模式 (版本号13.1.1572.0|内核版本86.0.4240.198) |
解决方法 | |
1 | window.showModalDialog() | 支持 | 不支持 | 支持 | |
2 |
ajax请求: 所有现代浏览器(Chrom、IE7+、Firefox、Safari 以及 Opera)都有内建的 XMLHttpRequest 对象。 老版本的 Internet Explorer(IE5 和 IE6)使用 ActiveX 对象 |
new XMLHttpRequest() 或者new ActiveXObject("Microsoft.XMLHTTP")
|
new XMLHttpRequest()
|
new XMLHttpRequest() 或者new ActiveXObject("Microsoft.XMLHTTP")
|
if (window.XMLHttpRequest) {
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp = new XMLHttpRequest();
} else {
// IE6, IE5 浏览器执行代码
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
|
3 |
绑定事件: window.attachEvent()
window.addEventListener()
|
IE5~IE10:window.attachEvent()
IE9~IE11:window.addEventListener()
|
window.addEventListener() |
window.addEventListener()
|
if (window.attachEvent) {
window.attachEvent("onload", foo);
} else if (window.addEventListener) {
window.addEventListener("load", foo, false);
}
function foo() {
console.log("ok");
}
|
4 |
filter:alpha(opacity=5);
旧版 Internet Explorer 浏览器(4.0 to 8.0) 支持的非标准 "filter" 属性已被废弃。 IE8 及更低版本浏览器通常使用 opacity 属性。 |
IE5~IE9:支持 IE10+:不支持 |
不支持 | 不支持 | 改用opacity属性 |
5 |
所有主流浏览器均支持 getAttribute() 方法。 所有主要浏览器都支持 toLowerCase() 方法 getField、getElementField是封装的方法?? |
||||
6 |
nodeObj.removeNode():删除元素但不包括文本节点 nodeObj.removeNode(true):删除元素所有子节点 |
支持 | 不支持 | 支持 |
removeNode只能在IE下用。为了在ie和firefox下都能正常使用,先取上一层的父结点,然后removeChild 或者直接用jQuery的remove 改用:parent.removeChild(thisNode) 所有主流浏览器均支持 removeChild() 方法。 |
1)绑定事件:低版本IE:window.attachEvent(),高版本IE和Chrome:window.addEventListener()
2)在Chrome中字体不能小于10px,解决方案:p{font-size: 12px; transform: scale(0.8);}
3)IE9以下浏览器不能使用opacity,解决方案:opacity: 0.5;filter: alpha(opacity = 50);filter: progid:DXImageTransform.Microsoft.Alpha(style = 0, opacity = 50);
4)flex 布局想要支持ie 9低版本,同时使用,外布局flex,内布局float,display: flex;float: left;