一般而言,在一个浏览器中不兼容的语句都有相应的替代语句; 所以你在涉及到这样的问题时,要把这样的功能提出来,单另写个函数,在这个函数中实现 兼容多个浏览器。 例下面就是一个给js对象添加事件的函数,兼容不同浏览器。 com.wj.comm.attachEvent = function (obj, attr, func){ var a = "on" + attr; if (obj.addEventListener) obj.addEventListener(attr, func, false); else if (obj.attachEvent) obj.attachEvent(a, func); else { var f = obj[a]; obj[a] = function(){ var g = f.apply(this, arguments), e = func.apply(this, arguments); return g == undefined ? e : (e == undefined ? g : e && g) } } };
【区别符号】:「\9」、「*」、「_」
【示例】:
#tip {
background:blue; /*Firefox 背景变蓝色*/
background:red \9; /*IE8 背景变红色*/
*background:black; /*IE7 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
}
【说明】:因为IE系列浏览器可读「\9」,而IE6和IE7可读「*」(米字号),另外IE6可辨识「_」(底线),因此可以依照顺序写下来,就会让浏览器正确的读取到自己看得懂得CSS语法,所以就可以有效区分IE各版本和非IE浏览器(像是Firefox、Opera、Google Chrome、Safari等)。页面有的div宽度要给定,这会解决好多问题,我之前也在解决浏览器兼容性问题。
ie6有好多样式显示不全,我都是将ie6的样式直接放在页面中,然后判断是ie6的就调用这些样式。
所以你在涉及到这样的问题时,要把这样的功能提出来,单另写个函数,在这个函数中实现
兼容多个浏览器。
例下面就是一个给js对象添加事件的函数,兼容不同浏览器。
com.wj.comm.attachEvent = function (obj, attr, func){
var a = "on" + attr;
if (obj.addEventListener)
obj.addEventListener(attr, func, false);
else
if (obj.attachEvent)
obj.attachEvent(a, func);
else {
var f = obj[a];
obj[a] = function(){
var g = f.apply(this, arguments), e = func.apply(this, arguments);
return g == undefined ? e : (e == undefined ? g : e && g)
}
}
};