JavaScript自定义getStyle方法获取元素样式
兼容性
兼容性如下图所示(摘自 mdn)

解决方法
由于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>
运行结果
- 
IE8 
  2.IE11 
  3.chrome 
  4.firefox 
  
作者:陈太浪
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号