获取元素样式 currentStyle 和 getcomputedStyle

场景

 你要获取某一元素的样式,可是没有获取到,返回的值为undefined,可是有时候又能成功?

为什么?

因为,xx.stly.xxx 可以获取的样式信息,是dom元素style属性里的样式,对于通过<style>标签,或外部样式表定义的,我们就无法获取了。当然,js给予的也是dom。

 

怎么办?

dom标准里有个全局方法  getComputedStyle 。可以获取到当前对象样式规则信息,这还不算完,因为IE不支持。。。

IE有自己的 currentStyle 所以,你要兼容他们,怎么做?

 

代码

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        body,html{
            height: 100%;
        }
        body{
            background-color:red;
            background-image:url(实验.png)
        }
    </style>
</head>
<body>
<div id="div1" style=''></div>
</body>
<script type="text/javascript">
window.onload = function(){
    function t (obj,sx) {
        if(obj.currentStyle){
            return obj.currentStyle[sx];
        }else{
            return getComputedStyle(obj,false)[sx];
        }
    }
        var body =document.getElementsByTagName('body');
        body[0].style.backgroundImage ="url(实验.png)";
        alert(t(body[0],"backgroundColor"));
        }
    </script>
</html>

 

大家可以试试。

 

转载于:https://www.cnblogs.com/fenggu/p/4528644.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值