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){