svnno****@sourc*****
svnno****@sourc*****
2010年 12月 21日 (火) 22:33:08 JST
Revision: 2234 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2234 Author: dhrname Date: 2010-12-21 22:33:08 +0900 (Tue, 21 Dec 2010) Log Message: ----------- SVGFontElementの修正 Modified Paths: -------------- branches/06x/066/org/w3c/dom/svg.js Modified: branches/06x/066/org/w3c/dom/svg.js =================================================================== --- branches/06x/066/org/w3c/dom/svg.js 2010-12-20 14:15:48 UTC (rev 2233) +++ branches/06x/066/org/w3c/dom/svg.js 2010-12-21 13:33:08 UTC (rev 2234) @@ -5188,30 +5188,30 @@ /*_isExternalは外部から呼び出されたfont要素ならば、真(1)となる*/ /*boolean or number*/ this._isExternal = 0; this.addEventListener("DOMNodeInserted", function(evt){ - var tar = evt.target, svgns = "http://www.w3.org/2000/svg"; + var tar = evt.target; if (evt.eventPhase === Event.BUBBLING_PHASE) { return; } - var fontFace = tar.getElementsByTagNameNS(svgns, "font-face").item(0); - var nefunc = function(evt){ - var svg = evt.target; - /*以下のtarはfont要素*/ - var familyName = fontFace.getAttributeNS(null, "font-family"); - var textElements = tar.ownerDocument.getElementsByTagNameNS(svgns, "text"); - for (var i=0,tli=textElements.length;i<tli;++i) { - var ti = textElements[i], style = tar.ownerDocument.defaultView.getComputedStyle(ti, ''); - if (style.getPropertyValue("font-family", null).indexOf(familyName) > -1) { - NAIBU._noie_createFont(ti, tar, true); + tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt){ + var tar = evt.target, svgns = "http://www.w3.org/2000/svg", fontFace = tar.getElementsByTagNameNS(svgns, "font-face").item(0); + var nefunc = function(evt){ + var svg = evt.target; + /*以下のtarはfont要素*/ + var familyName = fontFace.getAttributeNS(null, "font-family"); + var textElements = tar.ownerDocument.getElementsByTagNameNS(svgns, "text"); + for (var i=0,_tar=tar,tli=textElements.length;i<tli;++i) { + var ti = textElements[i], style = _tar.ownerDocument.defaultView.getComputedStyle(ti, ''); + if (style.getPropertyValue("font-family", null).indexOf(familyName) > -1) { + NAIBU._noie_createFont(ti, _tar, true); + } } + evt = tar = svg = curt = textElments = svgns = _tar = null; + }; + if (!fontFace.__isLinked || tar._isExternal) { + tar.ownerDocument.documentElement._svgload_limited = 0; + tar.ownerDocument.documentElement.addEventListener("SVGLoad", nefunc, false); } - evt = tar = svg = curt = textElments = svgns = null; - }; - if (!fontFace.__isLinked) { - tar.ownerDocument.documentElement.addEventListener("SVGLoad", nefunc, false); - } - if (tar._isExternal) { - nefunc({target : tar.ownerDocument.documentElement}); - } + }, false); }, false); return this; }; @@ -5287,7 +5287,7 @@ tpp = tar.parentNode.parentNode; //tppをfont-face要素としておく } tar._instance._isExternal = 1; - tpp.parentNode.replaceChild(tar._instance, tpp); + tpp.parentNode.appendChild(tar._instance); evt = tar = tpp = null; }, false); SVGURIReference.apply(this);