[Sie-announce] SIEコード [2661] CSSパーサを使ってSVGStyleElementのStyleSheetオブジェクトを実装

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2011年 5月 7日 (土) 22:04:42 JST


Revision: 2661
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2661
Author:   dhrname
Date:     2011-05-07 22:04:42 +0900 (Sat, 07 May 2011)

Log Message:
-----------
CSSパーサを使ってSVGStyleElementのStyleSheetオブジェクトを実装

Modified Paths:
--------------
    branches/07x/077/org/w3c/dom/svg.js

Modified: branches/07x/077/org/w3c/dom/svg.js
===================================================================
--- branches/07x/077/org/w3c/dom/svg.js	2011-05-05 11:40:34 UTC (rev 2660)
+++ branches/07x/077/org/w3c/dom/svg.js	2011-05-07 13:04:42 UTC (rev 2661)
@@ -1924,18 +1924,27 @@
   }, false);
   this.addEventListener("SVGLoad", function(evt){
     var tar = evt.target,
-        style = tar._text,
-        tod = tar.ownerDocument;
+        sheet = tar.sheet,
+        styleText = tar._text,
+        tod = tar.ownerDocument,
+        style = document.createElement("style"),
+        i, rules, rli, ri;
     NAIBU._temp_doc = tod;
-    tar.sheet = tod.styleSheets[tod.styleSheets.length] = DOMImplementation.createCSSStyleSheet(tar.title, tar.media);
-    tar.sheet.ownerNode = tar;
+    sheet = tod.styleSheets[tod.styleSheets.length] = DOMImplementation.createCSSStyleSheet(tar.title, tar.media);
+    sheet.ownerNode = tar;
+    /*以下は、IEのCSSパーサを使って、スタイルシートのルールを実装していく*/
+    style.styleSheet.cssText = styleText;
+    for (i=0, rules=style.styleSheet.rules, rli=rules.length;i<rli;++i) {
+      ri = rules[i];
+      sheet.insertRule(ri.cssText, i);
+    }
     tod.documentElement._svgload_limited--;
     if (tod.documentElement._svgload_limited < 0) {
       evt = tod.createEvent("SVGEvents");
       evt.initEvent("SVGLoad", false, false);
       tod.documentElement.dispatchEvent(evt);
     }
-    tar = evt = style = null;
+    tar = evt = style = sheet = styleText = tod = i = rules = rli = null;
   }, false);
   this.addEventListener("DOMNodeInserted", function(evt){
     var tar = evt.target;




Sie-announce メーリングリストの案内
Back to archive index