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>

運行結果

  1. IE8

    2.IE11

    3.chrome

    4.firefox


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM