currentStyle和getComputedStyle的兼容写法
来源:互联网 发布:ipad钢琴教学软件 编辑:程序博客网 时间:2024/04/30 06:07
currentStyle:获取计算后的样式,也叫当前样式、最终样式。
优点:可以获取元素的最终样式,包括浏览器的默认值,而不像style只能获取行间样式,所以更常用到。
注意:不能获取复合样式如background属性值,只能获取单一样式如background-color等。
alert (oAbc.currentStyle);
非常遗憾的是,这个好使的东西也不能被各大浏览器完美地支持。准确地说,在我测试的浏览器中,IE8和Opera 11弹出了“object CSSStyleDeclaration”;FF 12、chrome 14、safari 5则弹出“undefined”。
虽然currentStyle无法适用于所有浏览器,但是可以根据以上测试的结果来区分开支持、不支持的浏览器,然后再找到兼容的写法。
var oAbc = document.getElementById("abc");if(oAbc.currentStyle) {//IE、Operaalert("我支持currentStyle");} else {//FF、chrome、safarialert("我不支持currentStyle");}
其实在FF浏览器中我们可以使用getComputedStyle(obj,false)来达到与IE下currentStyle相同的效果。
getComputedStyle(obj,false):在FF新版本中只需要第一个参数,即操作对象,第二个参数写“false”也是大家通用的写法,目的是为了兼容老版本的火狐浏览器。
兼容写法:
var oAbc = document.getElementById("abc");if(oAbc.currentStyle) {//IE、Opera//alert("我支持currentStyle");alert(oAbc.currentStyle.width);} else {//FF、chrome、safari//alert("我不支持currentStyle");alert(getComputedStyle(oAbc,false).width);}
一个空白页面中body的id=”abc”,测试以上代码,IE和Opera弹出“auto”,其它三款浏览器则弹出“***px”。虽然结果不同,但是可以发现chrome和safari也都和火狐一样,顺利地读取到了属性值。不支持currentStyle的三款浏览器(FF、chrome、safari),都是支持getComputedStyle的。
结果表明:对浏览器是否支持currentStyle的判断 + getComputedStyle,就可以做到兼容各主流浏览器的效果。而且兼容写法并不复杂,你掌握了吗?^_^
支持currentStyle:IE、Opera
支持getComputedStyle:FireFox、Chrome、Safari
注意最后的弹出内容,currentStyle返回浏览器的默认值”auto”,而getComputedStyle则返回具体的值”**px”。这应该是两者的一个小差异,有兴趣的童鞋可以一起交流研究下。
本文源址:http://www.54173.cn/blog/?p=549。
- currentStyle和getComputedStyle的兼容写法
- javascript中getComputedStyle和currentStyle的兼容写法
- currentStyle和getComputedStyle的应用
- currentStyle和getComputedStyle的区别
- getComputedStyle和currentStyle的使用方法
- style,currentStyle,getComputedStyle的区别和用法
- style currentStyle getComputedStyle的区别和用法
- js中getComputedStyle 和currentStyle 的区别
- getComputedStyle、currentStyle 和getPropertyValue
- currentStyle和getComputedStyle
- currentstyle和getComputedStyle兼容问题
- 由于 box.style.left只能获取行内样式的值,不能获取到css中JS中样式left等值;用JS获取外部CSS样式--currentStyle和getComputedStyle的兼容写法
- currentStyle与getComputedStyle的用法
- currentStyle、runtimeStyle、getComputedStyle的区别
- style、currentStyle、getComputedStyle的应用
- currentStyle与getComputedStyle的用法
- js中style,currentStyle和getComputedStyle的区别
- js获取css值的方法:style、getComputedStyle和currentStyle
- 每天一个linux命令(11):nl命令
- uml基础
- 指针和二维数组
- ubuntu 安装git
- 每天一个linux命令(12):more命令
- currentStyle和getComputedStyle的兼容写法
- windows7利用EasyBCD安装centos6.3双系统
- 每天一个linux命令(13):less 命令
- 03dlist-kernel_list
- arp 相关
- mysql 备份 还原
- 每天一个linux命令(14):head 命令
- Android 判断SIM卡属于哪个移动运营商
- 复数类及各种操作(Java)