저는 최신 브라우저 (FF 4+, Chrome, Opera 11+, IE8 +)를 지원하면서 작업을위한 자바 프레임 워크를 만드는 중입니다. 오페라에서<style> 프로토 타입, CSSStyleRule/CSSRule 엉망 가져 오기
- 더
CSSStyleRule
개체가 없습니다, 심지어String(rule) === "[object CSSStyleRule]"
경우 (V 11.64까지.) : 나는 (스타일 규칙을rule
입니다 가정) 스타일 규칙의prototype
을 확장하려고 몇 가지 문제가 있습니다.rule instanceof CSSRule
이지만 여전히CSSRule.prototype
은 정의되지 않았습니다. 올바른 프로토 타입을 얻는 유일한 방법은rule.__proto__
입니다. - 다른 브라우저 (예 : IE)에서
parentStyleSheet
속성을 정의하고자합니다."parentStyleSheet" in CSSStyleRule.prototype
은 항상 거짓이며, 소프트 코딩 된 코드가 정확하지 않기 때문에 (적어도 처음 실행될 때) 네이티브 구현을 재정의하고 싶지는 않습니다.
사용할 수있는 스타일 규칙을 갖는 것은 '나에 가자하기에 충분하지만 문서가로드 전에 을 정의 된 프레임 워크에서 일하고 있어요 때문에이 두 가지 점에 문제가있다, 그래서 내가 할 수있는 것 DOM에 <style>
요소를 추가하십시오.
그래서, 내가 부탁 해요 것은 :
- 는이 DOM에 부착 할 필요없이 더미 스타일 규칙 (결국 부모 스타일 시트)를 만들 수있는 방법이 있습니까?
- Opera에서 스타일 규칙 프로토 타입에 액세스하려면 어떻게해야합니까?
나는 첫 번째 질문에 대한 대답은 "아니오"라고 두려워한다. 문서가로드되기 전에 당신이 못생긴 document.write('<link rel="stylesheet" ...
을 할 수있는 다음 document.head에 추가 할 수없는 경우
조금 도움이 되었기를 바랍니다. http://dev.opera.com/articles/view/dynamic-style-css-javascript/ –
궁금한 점 : 왜 새로운 프레임 워크인가? –
@Diodeus 좋은 기본 튜토리얼이지만 불행히도 여전히 DOM의 가용성에 의존합니다. – MaxArt