2012-06-30 7 views
2

문제 : IE9CSS 그라디언트 필터 자바 스크립트와 IE 9

나는 테이블을 가지고있다. CSS 클래스가 있습니다.

.red 
{ 
    filter:progid:DXImageTransform.Microsoft.Gradient(sProperties); 
} 

내가 할 경우 :

... <tr class="red"> ... 

모든게 잘 작동하는 CSS 클래스는 그라데이션 필터가 포함되어 있습니다. 내가한다면

<script type="javascript"> 

... element.className = 'red'; 

</script> 

필터가 적용되지 않습니다. 과제가 적용된 후에 어떤 사건이 해고 될 수 있는지 아는 사람이 있습니까? td class = "red"를 수행하는 것은 해결책이 아니며 테이블은 powershell 테이블 도우미로 렌더링됩니다. jQuery 나 다른 프레임 워크는 해결책이 아니기 때문에이 간단한 "한 페이지"응용 프로그램을 날려 버릴 수 있습니다. 미리 감사드립니다, 로버트

편집 :

http://msdn.microsoft.com/en-us/library/ms532997(v=vs.85).aspx

object.style.filter = "progid:DXImageTransform.Microsoft.Gradient(sProperties)" 
+1

'element'뒤에 스크립트가 호출됩니까? 예 : 'onload' 또는'ready' 이벤트, 또는 엘리먼트 다음의 어딘가에? – Ryan

+0

예, 스크립트 컨테이너가 페이지 하단에 있습니다. –

+1

[나를위한 작품] (http://jsfiddle.net/NVV63/). – Jon

답변

0

실제로 element 가정이 element 실제로 존재 한 후 스크립트가 호출 될 부르심 당신이 빨간색하게 할 요소를 말하며, 페이지에 표시되며 실제 CSS에는 sProperties 문자가 아닌 Gradient의 실제 인수가 포함 된 다음 페이지를 확대/축소하여 수동으로 다시 그려야합니다. 그라디언트가 갑자기 나타나면 elementdisplay을 숨기고 다시 표시하여 자동 다시 그리기를 강제 실행하십시오.

실제로 많은 가정이 있습니다 ... 대신 background-image을 사용해야할까요?

+0

클래스 이름을 설정하면 IE에서 항상 ** 리플 로우가 트리거됩니다. 'elem.className = elem.className;'은 다시 그리기를 요청하는 IE "기능"(또는 해킹?) 중 하나입니다. –

+0

아. 그렇다면 가정 중 하나가 틀렸어 야합니다. –

+0

@Kolink 디스플레이 "해킹"이 좋게 들리 겠지만, 월요일에 시도 할 것입니다. 작동하지 않는다면 아무런 문제가되지 않습니다. 그런 다음 행을 단순히 빨간색으로 만듭니다. background-color : red는 괜찮습니다. 그래디언트 필터에 문제가 있습니다. –