日期:2014-05-16  浏览次数:20368 次

关于JS、jQuery中个别方法的浏览器兼容性问题之总结(陆续更新)

一、CSS样式的获取

比如,我想获取当前页面中font-size样式的值

在IE浏览器中可以使用 元素.currentStyle.具体属性 的方法获得具体的值。

但是在360和FF中currentStyle则会失效,这个时候要用到getComputedStyle(元素, 伪类名).属性 的方法。其中伪类名如果不存在则写null。
兼容性写法如下:

var target = document.getElementByID("a");
var tag_fontsize  = null;
if(target.currentStyle)//IE
{
    tag_fontsize = target.currentStyle.fontSize;
}
else//360 and FireFox
{
    tag_fontsize = getComputedStyle(target, null).fontSize;
}

?二、获取浏览器的尺寸

/**获取屏幕的宽度*/
var winWidth = 0;//屏幕的宽px
if(typeof(window.innerWidth) == "number")//360和火狐浏览器
{
    winWidth = window.innerWidth;
}
else if ((document.body) && (document.body.clientWidth))//IE浏览器
{
    winWidth = document.body.clientWidth;
}

?三、触发window.onresize函数

window.onresize函数只在IE浏览器中有效,在360 和FF中都无效,所以,最明智的解决方法就是改用jQuery:$(window).resize(function(){blabal……}); 代替 JS中的window.onresize = fucntion(blabla……);

?