我其实是想自己自定义一个函数,来获取元素的样式,解决一下IE的兼容性问题,但是在IE11中运行没问题,而在IE10中却说我少了个分号,在其他浏览器也都是正常的
完整代码如下
<!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) {
return getComputedStyle(obj, null)[name] || obj.currentStyle[name];
}
window.onload = function () {
let box = document.querySelector("div");
let btn = document.querySelector("button");
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>
截图如下:
IE11中正常运行
IE10 则报错 说我在第18行上了一个分号
webstorm中的代码截图
16行括号结束后要打分号
那个地方没有必要加分号 但是我还是试过 没用
@陈太浪: let 的原因,let 改成var 就可以了, let 是es6 ,ie10只支持es5
@Cgrain: 一语惊醒梦中人 谢谢大佬 解决了
@陈太浪: let ,const 后面都会转换成var 的,你可以用打包工具转换一下看看,是不是,我也
** 没有证明过 **
@Cgrain: ok 我试试
是因为加载的时候你的符号是 中文的其他的自动转换了
我的符号都是英文的啊 没有出现中文符号
@陈太浪: 你删除后 加空格重新打一次
@琦渊: 没有用