トップ «前の日記(2009-07-01) 最新 次の日記(2009-07-03)» 編集

(゚Д゚)ウボァー日記


2009-07-02

_ [Mozilla]

昨日の@import削除が効かない原因判明。

@importはDOM的にはCSSImportRuleインターフェースで、子CSSStyleSheetを抱え込んでる。

http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/css.html#CSS-CSSImportRule

fxでは@importを削除しても、子スタイルシートのルールが残ってしまうため、こっちも手動で削除する必要がある。

もちろん子スタイルシートも@importである可能性があるため、再帰的に処理する。

deleteCSSRule: function(target){
while(target.cssRules.length){
if(target.cssRules[0].styleSheet){
this.deleteCSSRule(target.cssRules[0].styleSheet);
}
target.deleteRule(0);
}
}