사용

2010-04-01 6 views
6

나는이 같은 HTML을 none "이지만 빈 문자열을 반환합니다. 이 문제를 해결할 방법이 있습니까?사용

답변

5

표준 호환 브라우저 (IE - currentStyle/runtimeStyle 아님)에서 작동합니다.

<body> 
    <div id="test">Testing</div> 

    <script type="text/javascript"> 
     window.onload = function() { 
      alert(window.getComputedStyle(document.getElementById('test'),null).getPropertyValue('display')); 
     } 
    </script> 
</body> 

+1

바닐라 JS에서 1 라이너를 수행하기 위해 150kb 라이브러리를로드 하시겠습니까? 진심이야? –

+0

감사합니다. 그러나 우리 페이지는 모바일에서 사용되며 페이지의 크기를 최소화해야합니다. 따라서 jquery는 권장되지 않습니다. 동일한 결과를 얻을 수있는 다른 방법이 있습니까? – Alan

+0

질문에 언급 할 가치가 있습니다. 특정 휴대폰? 상당수는 JS를 전혀 지원하지 않습니다. – Jonathan

3

표시가 스타일 속성으로 직접 설정되지 않으므로 위 코드를 사용하여 표시되지 않습니다. 계산 된 값을 얻어야합니다. 당신은이 페이지를 참조 할 수 있습니다

, Get styles

이 값

var displayValue = getStyle("test", "display"); 

function getStyle(el,styleProp) 
{ 
    var x = document.getElementById(el); 
    if (x.currentStyle) 
     var y = x.currentStyle[styleProp]; 
    else if (window.getComputedStyle) 
     var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp); 
    return y; 
} 
+0

감사

. 그러나 어떻게 계산 된 값을 얻을 수 있습니까? – Alan

+0

내 답변을 수정했습니다. – rahul

+1

그 기능은 정말 기본입니다. 두 개 이상의 단어 (예 :'font-size','background-color' 등)로 형성된 CSS 속성 이름에 문제가있을 것이고'getComputedStyle' 메쏘드는' document.defaultView' 객체를 사용할 수 있습니다. 왜냐하면 모든 브라우저가 전역 객체 ('window')에서 사용 가능한'defaultView' 멤버를 가지고 있지 않기 때문에 더 많은 불일치가 있기 때문에 제가 만든이 구현을 살펴보십시오 : http://stackoverflow.com/questions/2531737/javascript-get-elements-max-height-by-element-style-maxheight/2531934 # 2531934 – CMS

0

CSS는 아직로드되지 않습니다를 얻을 수 있습니다. 자바 스크립트를 "준비가 된"이벤트로 마무리하십시오.

<body onload="alert(document.getElementById('test').style.display);">

당신을 위해 그 일을합니까?

+0

감사합니다. 어떤 예가 있습니까? – Alan

+0

가 작동하지 않습니다 = [ – Alan