[Sie-announce] SIEコード [2055] script要素を動作させるように修正

アーカイブの一覧に戻る

svnno****@sourc***** svnno****@sourc*****
2010年 10月 13日 (水) 21:53:46 JST


Revision: 2055
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2055
Author:   dhrname
Date:     2010-10-13 21:53:46 +0900 (Wed, 13 Oct 2010)

Log Message:
-----------
script要素を動作させるように修正

Modified Paths:
--------------
    branches/06x/061/org/w3c/dom/svg.js

Modified: branches/06x/061/org/w3c/dom/svg.js
===================================================================
--- branches/06x/061/org/w3c/dom/svg.js	2010-10-11 10:58:17 UTC (rev 2054)
+++ branches/06x/061/org/w3c/dom/svg.js	2010-10-13 12:53:46 UTC (rev 2055)
@@ -1593,7 +1593,7 @@
       var backdown = bt + viewHeight + 1;
       trstyle.clip = "rect(" +bt+ "px " +backright+ "px " +backdown+ "px " +bl+ "px)";
       this._document = s;
-      if (!!s._svgload_limited) {
+      if (!!s._svgload_limited || s._svgload_limited === 0) {
         /*_svgload_limitedプロパティはXlink言語が使われていない限り、0である。
          *xlink:href属性が指定されるたびに+1となる。
          *0以外は、SVGLoadイベントが発火されない仕組みとなっている
@@ -4308,18 +4308,23 @@
     }
     tar = evt = script = null;
   }, false);
-  this.addEventListener("DOMNodeInsertedIntoDocument", function(evt){
+  this.addEventListener("DOMNodeInserted", function(evt){
     var tar = evt.target;
-    if (evt.eventPhase === Event.AT_TARGET && !tar.getAttributeNodeNS("http://www.w3.org/1999/xlink", "xlink:href")) {
-      var ftar = tar.firstChild;
-      if (ftar.nodeType === Node.CDATA_SECTION_NODE) {
-        tar._text = ftar.data;
+    if (evt.eventPhase === Event.BUBBLING_PHASE) {
+      if (tar.nodeName === "#cdata-section") {
+        evt.currentTarget._text = tar.data;
       }
-      var evtt = tar.ownerDocument.createEvent("SVGEvents");
-      evtt.initEvent("SVGLoad", false, false);
-      evt.currentTarget.dispatchEvent(evtt);
+      return;
     }
-    tar = evt = null;
+    tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt){
+      var tar = evt.target;
+      if (evt.eventPhase === Event.AT_TARGET && !tar.getAttributeNodeNS("http://www.w3.org/1999/xlink", "xlink:href")) {
+        var evtt = tar.ownerDocument.createEvent("SVGEvents");
+        evtt.initEvent("SVGLoad", false, false);
+        evt.currentTarget.dispatchEvent(evtt);
+      }
+      tar = evt = null;
+    }, false);
   }, false);
   return this;
 };
@@ -4715,7 +4720,9 @@
      *baseValと同じような値に設定。
      */
     trans.animVal = new SVGTransformList();
-    trans.animVal.initialize(trans.baseVal.createSVGTransformFromMatrix(trans.baseVal.getItem(0).matrix));
+    if (trans.baseVal.numberOfItems !== 0) {
+      trans.animVal.initialize(trans.baseVal.createSVGTransformFromMatrix(trans.baseVal.getItem(0).matrix));
+      }
     trans.animVal.appendItem(tar.ownerDocument.documentElement.createSVGTransform());
     tar._frame = function() {
       var _tar = tar, tpn = _tar._path;




Sie-announce メーリングリストの案内
アーカイブの一覧に戻る