[Sie-announce] SIEコード [2805] GetSVGDocumentの修正

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2011年 6月 30日 (木) 20:54:19 JST


Revision: 2805
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2805
Author:   dhrname
Date:     2011-06-30 20:54:19 +0900 (Thu, 30 Jun 2011)

Log Message:
-----------
GetSVGDocumentの修正

Modified Paths:
--------------
    branches/08x/081/org/w3c/dom/svg.js

Modified: branches/08x/081/org/w3c/dom/svg.js
===================================================================
--- branches/08x/081/org/w3c/dom/svg.js	2011-06-30 10:33:00 UTC (rev 2804)
+++ branches/08x/081/org/w3c/dom/svg.js	2011-06-30 11:54:19 UTC (rev 2805)
@@ -1695,24 +1695,25 @@
     ifr.marginHeight= "0px";
     ifr.scrolling = "no";
     ifr.frameBorder = "0";
-    document.body.appendChild(ifr);
     /*iframe要素を使って、描画のプロセスを分離する
      *したがって、_docはdocumentとは別のオブジェクトとなる
      */
+    this._tar.parentNode.insertBefore(ifr, this._tar);
+    ifr.contentWindow.screen.updateInterval = 999;
     var _doc = ifr.contentWindow.document;
     _doc.write("");
     _doc.close(); // これがないと document.body は null になる
     if (("namespaces" in _doc) && !_doc.namespaces["v"]) {
       _doc.namespaces.add("v","urn:schemas-microsoft-com:vml");
       _doc.namespaces.add("o","urn:schemas-microsoft-com:office:office");
-      var st = _doc.createStyleSheet();
-      var vmlUrl = "behavior: url(#default#VML);display: inline-block;} "; //inline-blockはIEのバグ対策
+      var st = _doc.createStyleSheet(),
+          vmlUrl = "behavior: url(#default#VML);display: inline-block;} "; //inline-blockはIEのバグ対策
       st.cssText = "v\\:rect{" +vmlUrl+ "v\\:image{" +vmlUrl+ "v\\:fill{" +vmlUrl+ "v\\:stroke{" +vmlUrl+ "o\\:opacity2{" +vmlUrl
         + "dn\\:defs{display:none}"
         + "v\\:group{text-indent:0px;position:relative;width:100%;height:100%;" +vmlUrl
         + "v\\:shape{width:100%;height:100%;" +vmlUrl;
+      st = vmlUrl = null;
     }
-    _doc.body.style.backgroundColor = document.body.currentStyle.backgroundColor;
     var str = this.xmlhttp.responseText,
         objei = this._tar,
         s = DOMImplementation.createDocument("http://www.w3.org/2000/svg", "svg"),
@@ -1730,6 +1731,7 @@
           oba = _doc.createElement("div"); //obaはradialGradient要素で使う
     oba.setAttribute("id","_NAIBU_outline");
     _doc.body.appendChild(oba);
+    _doc.body.style.backgroundColor = objei.parentNode.currentStyle.backgroundColor;
     s._document_ = _doc; //_document_プロパティはradialGradient要素やNAIBU._setPaintなどで使う
     ndoc.async = false;
     /*下記のプロパティについては、Microsoftのサイトを参照
@@ -1794,7 +1796,6 @@
     dcp.coordsize = tview.width+ " " +tview.height;
     sp.appendChild(dcp);
     _doc.body.appendChild(sp);
-    objei.parentNode.insertBefore(ifr, objei);
     dcp.appendChild(sdt);
     while (fi) { //子ノードを検索して、子供がいれば、importNodeメソッドを再帰的に実行する
       n = s.importNode(fi, true);




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