国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

獲取css樣式表內(nèi)樣式的js函數(shù)currentStyle(IE),defaultView(FF)

2019-11-20 23:56:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
可是DOM.style這種寫(xiě)法只能訪問(wèn)<DOM style=""></DOM>,這樣在標(biāo)簽里內(nèi)置的樣式,如果樣式寫(xiě)在<style type="text/css"></style>,或者.css文件里,那么就辦法讀到樣式了。

其實(shí)呢,還有別的方法可以讀到這些樣式信息,方法有兩種,一種是通過(guò)document.styleSheets對(duì)象,另一種是通過(guò)“最終樣式”對(duì)象。其中 IE中這個(gè)對(duì)象叫做currentStyle,FF中這個(gè)對(duì)象叫做document.defaultView。我將這兩個(gè)類(lèi)打包了一下,做了一個(gè)用于訪問(wèn) 樣式信息的函數(shù),如下:
復(fù)制代碼 代碼如下:

//===========================訪問(wèn)樣式表函數(shù)====================================
function returnStyle(obj,styleName){
var myObj = typeof obj == "string" ? document.getElementById(obj) : obj;
if(document.all){
return eval("myObj.currentStyle." + styleName);
} else {
return eval("document.defaultView.getComputedStyle(myObj,null)." + styleName);
}
}

函數(shù)有兩個(gè)參數(shù):

obj:訪問(wèn)的對(duì)象,類(lèi)型為DOM對(duì)象,或者是對(duì)象的id;

styleName: 需要訪問(wèn)的樣式名稱(chēng)。類(lèi)型為string,但是名稱(chēng)不能用"-"號(hào),要用像style.對(duì)象的屬性名一樣的大小寫(xiě)混寫(xiě)名稱(chēng),例如background-color要寫(xiě)成backgroundColor。

函數(shù)返回值為 string類(lèi)型。

注意:這個(gè)方法只能訪問(wèn)樣式文件,不能寫(xiě)。如果要寫(xiě)樣式,還是要用DOM.style.XXX的方法。另外,F(xiàn)F下有些樣式訪問(wèn)有問(wèn)題,例如padding,margin。如果樣式中設(shè)置了padding,margin等值,我們可以用marginLeft來(lái)返回值。
復(fù)制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
#demo{background-color:#000;padding:10px;color:#fff;width:200px;}
</style>
<script type="text/javascript">
//===========================訪問(wèn)樣式表====================================
function returnStyle(obj,styleName){
var myObj = typeof obj == "string" ? document.getElementById(obj) : obj;
if(document.all){
return eval("myObj.currentStyle." + styleName);
} else {
return eval("document.defaultView.getComputedStyle(myObj,null)." + styleName);
}
}
</script>
<title></title>
</head>
<body>
<div id="demo">這里是測(cè)試內(nèi)容</div>
<br /><br />
<a href="###" onclick="alert(returnStyle('demo','width'));">點(diǎn)擊測(cè)試</a>
</body>
</html>

===========================
復(fù)制代碼 代碼如下:

function getStyle( elem, name ) {
//如果該屬性存在于style[]中,則它最近被設(shè)置過(guò)(且就是當(dāng)前的)
if (elem.style[name])
return elem.style[name];
//否則,嘗試IE的方式
else if (elem.currentStyle)
return elem.currentStyle[name];
//或者W3C的方法,如果存在的話
else if (document.defaultView && document.defaultView.getComputedStyle) {
//它使用傳統(tǒng)的"text-Align"風(fēng)格的規(guī)則書(shū)寫(xiě)方式,而不是"textAlign"
name = name.replace(/([A-Z])/g,"-$1");
name = name.toLowerCase();
//獲取style對(duì)象并取得屬性的值(如果存在的話)
var s = document.defaultView.getComputedStyle(elem,"");
return s && s.getPropertyValue(name);
//否則,就是在使用其它的瀏覽器
} else
return null;
}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临城县| 万州区| 合江县| 蒙城县| 遵义市| 赤峰市| 光泽县| 章丘市| 新邵县| 云梦县| 方正县| 名山县| 辽宁省| 汕头市| 景德镇市| 宁都县| 九寨沟县| 遵化市| 南皮县| 台东县| 安多县| 荃湾区| 桃园市| 安图县| 清新县| 娄烦县| 清流县| 杭州市| 广安市| 新闻| 浦城县| 石渠县| 禄丰县| 治多县| 师宗县| 芦山县| 柯坪县| 永城市| 元江| 灌南县| 长武县|