相容性 相容性如下圖所示 ( "摘自 mdn" ) 解決方法 由於getComputedStyle方法在IE瀏覽器中只相容IE9及其以上,而IE8和它之前的瀏覽器則需要使用currentStyle方法來獲取樣式,所以我們就可以自定義一個getStyle方法來解決相容性的問題 代碼 自定義getSty ...
相容性
相容性如下圖所示(摘自 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