svnno****@sourc*****
svnno****@sourc*****
2011年 1月 2日 (日) 23:14:03 JST
Revision: 2270 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2270 Author: dhrname Date: 2011-01-02 23:14:03 +0900 (Sun, 02 Jan 2011) Log Message: ----------- SVGTextContentElementについて、子要素が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 2011-01-02 13:06:11 UTC (rev 2269) +++ branches/06x/067/org/w3c/dom/svg.js 2011-01-02 14:14:03 UTC (rev 2270) @@ -3451,6 +3451,10 @@ /*Bubblingフェーズの時にはもう、div要素をDOMツリーに挿入しておく必要があるため、 *あらかじめ、Capturingフェーズで処理しておく */ + if (tar.localName === "a") { + /*a要素の場合はtarをすりかえておく*/ + tar = tar.firstChild ? tar.firstChild : tar; + } if ((evt.eventPhase === Event.CAPTURING_PHASE) && (tar.nodeType === Node.TEXT_NODE) && !!!tar._tars) { /*Textノードにdiv要素を格納したリストをプロパティとして蓄えておく*/ tar._tars = []; @@ -3622,7 +3626,7 @@ ++n; } chars += tli; - if (ti.parentNode.localName === "a") { //a要素が親である場合は、tiを親に戻しておく + if (ti.parentNode && (ti.parentNode.localName === "a")) { //a要素が親である場合は、tiを親に戻しておく ti = ti.parentNode; } ti = ti.nextSibling; @@ -3651,6 +3655,8 @@ } else if ((ti.localName === "a") && (ti.namespaceURI === "http://www.w3.org/2000/svg") && ti.firstChild) { /*a要素のテキストノードも処理する*/ ti = ti.firstChild; + } else { + ti = ti.nextSibling; } } tar._isYokogaki = isYokogaki //getEndPositionOfCharメソッドなどで使う