欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript自定义getStyle方法获取元素样式

程序员文章站 2022-04-14 23:29:23
兼容性 兼容性如下图所示 ( "摘自 mdn" ) 解决方法 由于getComputedStyle方法在IE浏览器中只兼容IE9及其以上,而IE8和它之前的浏览器则需要使用currentStyle方法来获取样式,所以我们就可以自定义一个getStyle方法来解决兼容性的问题 代码 自定义getSty ......

兼容性

兼容性如下图所示摘自 mdn

JavaScript自定义getStyle方法获取元素样式

解决方法

由于getcomputedstyle方法在ie浏览器中只兼容ie9及其以上,而ie8和它之前的浏览器则需要使用currentstyle方法来获取样式,所以我们就可以自定义一个getstyle方法来解决兼容性的问题

代码

自定义getstyle()代码

function getstyle (obj, name) {
    if (obj.currentstyle) {
        return obj.currentstyle[name];
    }
    else {
        return getcomputedstyle(obj)[name];
    }
}

完整html代码

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>getstyle</title>
    <style>
        div{
            width: 200px;
            height: 200px;
            background-color: brown;
        }
    </style>
    <script>
        function getstyle (obj, name) {
            if (obj.currentstyle) {
                return obj.currentstyle[name];

            }
            else {
                return getcomputedstyle(obj)[name];
            }
        }
        window.onload = function () {
            // let box = document.queryselector("div");
            var box = document.getelementsbytagname("div")[0];
            var btn = document.getelementsbytagname("button")[0];
            box.style.width = "250px";
            box.style.height = "250px";
            box.style.backgroundcolor = "skyblue";
            btn.onclick = function () {
                alert(getstyle(box, "backgroundcolor"));
            };
        };
    </script>
</head>
<body>
    <div></div>
    <button>fun</button>
</body>
</html>

运行结果

  1. ie8
    JavaScript自定义getStyle方法获取元素样式

    2.ie11
    JavaScript自定义getStyle方法获取元素样式

    3.chrome
    JavaScript自定义getStyle方法获取元素样式

    4.firefox
    JavaScript自定义getStyle方法获取元素样式