继上一篇:获取非行间样式,此处有兼容问题

本文介绍了一种在不同浏览器中获取元素样式的通用方法,并提供了一个兼容IE与现代浏览器(如Chrome、Firefox)的JavaScript函数。

html格式:

  1.   <body>  
  2.     <div id="div1" style="width:200px; height:200px; background:red;">  
  3.     </div>

js代码:

  1. window.onload=function ()  
  2.     {  
  3.         var oDiv=document.getElementById('div1');  
  4.   
  5.         //alert(oDiv.style.width);     //style只能用来获取行间样式  
  6.         //IE(currentStyle用来获取非行间样式,只兼容IE和高版本的chrome)  
  7.         //alert(oDiv.currentStyle.width);  
  8.   
  9.         //chrome、FF(getComputedStyle有两个参数,第一个就是你要获取哪个物体的样式,第二个参数就是个垃圾,可以写任意东西)  
  10.         //alert(getComputedStyle(oDiv,false).width);  
  11.   
  12.         //alert(oDiv.currentStyle);  
  13.   
  14.         if(oDiv.currentStyle)         //*****如何让所有浏览器都兼容呢?实际上,JS里99.99%的这种兼容问题,都是通过if来解决的  
  15.         {  
  16.             //IE  
  17.             alert(oDiv.currentStyle.width);  
  18.         }  
  19.         else  
  20.         {  
  21.             //chrome、FF  
  22.             alert(getComputedStyle(oDiv,false).width);  
  23.         }  
  24.     };  

把上面的if else封装成一个函数,即公用函数。

  1.  function getStyle(obj,name)  
  2.     {  
  3.         if (obj.currentStyle)  
  4.         {  
  5.             return obj.currentStyle[name];  
  6.         }  
  7.         else  
  8.         {  
  9.             return getComputedStyle(obj,false)[name];  
  10.         }  
  11.     };  
  12.     window.onload=function ()  
  13.     {  
  14.         var oDiv=document.getElementById('div1');  
  15.   
  16.         alert(getStyle(oDiv,'width'));  
  17.     };  

 

转载于:https://www.cnblogs.com/redaisy567/p/5946926.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值