[Sie-announce] SIEコード [2263] SVGTextPositioningElementに関して、a要素の修正

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2010年 12月 29日 (水) 23:28:22 JST


Revision: 2263
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2263
Author:   dhrname
Date:     2010-12-29 23:28:22 +0900 (Wed, 29 Dec 2010)

Log Message:
-----------
SVGTextPositioningElementに関して、a要素の修正

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

Modified: branches/06x/067/org/w3c/dom/svg.js
===================================================================
--- branches/06x/067/org/w3c/dom/svg.js	2010-12-29 11:32:21 UTC (rev 2262)
+++ branches/06x/067/org/w3c/dom/svg.js	2010-12-29 14:28:22 UTC (rev 2263)
@@ -980,7 +980,7 @@
                   } else {
                     tar._text = xmlhttp.responseText;
                   }
-                } else {
+                } else if (!!tar._tar) {
                   tar._tar.src = uri;
                 }
                 var ev = tar.ownerDocument.createEvent("SVGEvents");
@@ -3622,6 +3622,10 @@
             ++n;
           }
           chars += tli;
+          if (ti.parentNode.localName === "a") { //a要素が親である場合は、tiを親に戻しておく
+            ti = ti.parentNode;
+          }
+          ti = ti.nextSibling;
         } else if ((ti.localName === "tspan") && (ti.namespaceURI === "http://www.w3.org/2000/svg") && ti.firstChild) {
           /*現在のテキスト位置(x,y)の分だけ、tspan要素をずらしておく。
            *さらに、現在のテキスト位置を更新する
@@ -3643,8 +3647,11 @@
           n += tg;
           chars += tg;
           p = tg = null;
+          ti = ti.nextSibling;
+        } else if ((ti.localName === "a") && (ti.namespaceURI === "http://www.w3.org/2000/svg") && ti.firstChild) {
+          /*a要素のテキストノードも処理する*/
+          ti = ti.firstChild;
         }
-        ti = ti.nextSibling;
       }
       tar._isYokogaki = isYokogaki //getEndPositionOfCharメソッドなどで使う
       tar = ti = tp = ptx = pty = tx = ty = chars = style = x = y = isYokogaki = null;
@@ -4347,7 +4354,7 @@
 SVGCursorElement.prototype = new SVGElement();
 
 function SVGAElement() {
-  SVGElement.apply(this, arguments);
+  SVGElement.apply(this);
   this._tar = document.createElement("a");
   /*readonly SVGAnimatedString*/ this.target = new SVGAnimatedString();
   this.addEventListener("DOMAttrModified", function(evt){




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