[Sie-announce] SIEコード [2352] SVGLoadイベント発生後に、属性変更による画像の更新をするように改良

アーカイブの一覧に戻る

svnno****@sourc***** svnno****@sourc*****
2011年 2月 1日 (火) 22:57:48 JST


Revision: 2352
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2352
Author:   dhrname
Date:     2011-02-01 22:57:48 +0900 (Tue, 01 Feb 2011)

Log Message:
-----------
SVGLoadイベント発生後に、属性変更による画像の更新をするように改良

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

Modified: branches/06x/069/org/w3c/dom/svg.js
===================================================================
--- branches/06x/069/org/w3c/dom/svg.js	2011-02-01 13:29:07 UTC (rev 2351)
+++ branches/06x/069/org/w3c/dom/svg.js	2011-02-01 13:57:48 UTC (rev 2352)
@@ -286,19 +286,6 @@
         }
       }
     }
-    if (tar.parentNode) {
-      var evtt = tar.ownerDocument.createEvent("MutationEvents");
-      evtt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
-      evtt.target = tar;
-      evtt.eventPhase = Event.AT_TARGET;
-      var tce = tar._capter; //tceは登録しておいたリスナーのリスト
-      for (var j=0,tcli=tce.length;j<tcli;++j){
-        if (tce[j]) {
-          tce[j].handleEvent(evtt);
-        }
-      }
-      evtt = null;
-    }
     evt = _parseFloat = name = tar = null;
   }, false);
   return this;
@@ -1148,7 +1135,30 @@
       tar.viewport.height = tar.height.baseVal.value;
     }
     evt = name = null;
-  }, false);  
+  }, false);
+  this.addEventListener("SVGLoad", function(evt){
+    this.addEventListener("DOMAttrModified", function(evt){
+      if (evt.eventPhase === Event.BUBBLING_PHASE) {
+        var tar = evt.target;
+        if (tar.parentNode) {
+          var evtt = tar.ownerDocument.createEvent("MutationEvents");
+          evtt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
+          evtt.target = tar;
+          evtt.eventPhase = Event.AT_TARGET;
+          var tce = tar._capter; //tceは登録しておいたリスナーのリスト
+          for (var j=0,tcli=tce.length;j<tcli;++j){
+            if (tce[j]) {
+              tce[j].handleEvent(evtt);
+            }
+          }
+          evtt = null;
+        }
+        tar = null;
+      }
+      evt = null;
+    }, false);
+    evt = null;
+  }, true);
   return this;
 };
 SVGSVGElement.constructor = SVGElement;




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