css 스타일 시트 내 스타일 의 js 함수 currentStyle(IE),defaultView(FF)가 져 오기

그러나 DOM.style 은 탭 에 내 장 된 스타일 에 만 접근 할 수 있 습 니 다.스타일 이 쓰 여 있 거나.css 파일 에 쓰 여 있 으 면 스타일 을 읽 을 수 있 습 니 다.사실은 이런 스타일 정 보 를 읽 을 수 있 는 다른 방법 도 있 습 니 다.방법 은 두 가지 가 있 습 니 다.하 나 는 document.styleSheets 대상 을 통 해 다른 하 나 는'최종 스타일'대상 을 통 해 읽 을 수 있 습 니 다.그 중에서 IE 에서 이 대상 은 currentStyle 이 고 FF 에서 이 대상 은 document.defaultView 라 고 합 니 다.나 는 이 두 가지 종 류 를 포장 하여 스타일 정보 에 접근 하 는 함 수 를 만 들 었 다.다음 과 같다
 
//=========================== ====================================
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);
}
}
함 수 는 두 개의 매개 변수 가 있다.obj:방문 대상,유형 은 DOM 대상 또는 대상 의 id 이다.styleName:접근 할 스타일 이름 입 니 다.형식 은 string 이지 만 이름 은"-"번 호 를 사용 할 수 없습니다.style.대상 의 속성 명 과 같은 대소 문자 혼합 이름 을 사용 해 야 합 니 다.예 를 들 어 background-color 는 backgroundColor 로 써 야 합 니 다.함수 반환 값 은 string 형식 입 니 다.메모:이 방법 은 스타일 파일 에 만 접근 할 수 있 고 쓸 수 없습니다.스타일 을 쓰 려 면 DOM.style.XXX 방법 을 써 야 합 니 다.또한,FF 아래 스타일 접근 에 문제 가 있 습 니 다.예 를 들 어 padding,margin.만약 스타일 에 padding,margin 등 값 이 설정 되 어 있다 면,우 리 는 margin Left 로 값 을 되 돌 릴 수 있 습 니 다
 
<!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">
//=========================== ====================================
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"> </div>
<br /><br />
<a href="###" onclick="alert(returnStyle('demo','width'));"> </a>
</body>
</html>
===========================
 
function getStyle( elem, name ) {
// style[] , ( )
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) {
// "text-Align" , "textAlign"
name = name.replace(/([A-Z])/g,"-$1");
name = name.toLowerCase();
// style ( )
var s = document.defaultView.getComputedStyle(elem,"");
return s && s.getPropertyValue(name);
// ,
} else
return null;
}

좋은 웹페이지 즐겨찾기