继上一篇:获取非行间样式,此处有兼容问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了继上一篇:获取非行间样式,此处有兼容问题相关的知识,希望对你有一定的参考价值。
html格式:
- <body>
- <div id="div1" style="width:200px; height:200px; background:red;">
- </div>
js代码:
- window.onload=function ()
- {
- var oDiv=document.getElementById(‘div1‘);
- //alert(oDiv.style.width); //style只能用来获取行间样式
- //IE(currentStyle用来获取非行间样式,只兼容IE和高版本的chrome)
- //alert(oDiv.currentStyle.width);
- //chrome、FF(getComputedStyle有两个参数,第一个就是你要获取哪个物体的样式,第二个参数就是个垃圾,可以写任意东西)
- //alert(getComputedStyle(oDiv,false).width);
- //alert(oDiv.currentStyle);
- if(oDiv.currentStyle) //*****如何让所有浏览器都兼容呢?实际上,JS里99.99%的这种兼容问题,都是通过if来解决的
- {
- //IE
- alert(oDiv.currentStyle.width);
- }
- else
- {
- //chrome、FF
- alert(getComputedStyle(oDiv,false).width);
- }
- };
把上面的if else封装成一个函数,即公用函数。
- function getStyle(obj,name)
- {
- if (obj.currentStyle)
- {
- return obj.currentStyle[name];
- }
- else
- {
- return getComputedStyle(obj,false)[name];
- }
- };
- window.onload=function ()
- {
- var oDiv=document.getElementById(‘div1‘);
- alert(getStyle(oDiv,‘width‘));
- };
以上是关于继上一篇:获取非行间样式,此处有兼容问题的主要内容,如果未能解决你的问题,请参考以下文章