svnno****@sourc*****
svnno****@sourc*****
2010年 10月 13日 (水) 21:53:46 JST
Revision: 2055 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2055 Author: dhrname Date: 2010-10-13 21:53:46 +0900 (Wed, 13 Oct 2010) Log Message: ----------- script要素を動作させるように修正 Modified Paths: -------------- branches/06x/061/org/w3c/dom/svg.js Modified: branches/06x/061/org/w3c/dom/svg.js =================================================================== --- branches/06x/061/org/w3c/dom/svg.js 2010-10-11 10:58:17 UTC (rev 2054) +++ branches/06x/061/org/w3c/dom/svg.js 2010-10-13 12:53:46 UTC (rev 2055) @@ -1593,7 +1593,7 @@ var backdown = bt + viewHeight + 1; trstyle.clip = "rect(" +bt+ "px " +backright+ "px " +backdown+ "px " +bl+ "px)"; this._document = s; - if (!!s._svgload_limited) { + if (!!s._svgload_limited || s._svgload_limited === 0) { /*_svgload_limitedプロパティはXlink言語が使われていない限り、0である。 *xlink:href属性が指定されるたびに+1となる。 *0以外は、SVGLoadイベントが発火されない仕組みとなっている @@ -4308,18 +4308,23 @@ } tar = evt = script = null; }, false); - this.addEventListener("DOMNodeInsertedIntoDocument", function(evt){ + this.addEventListener("DOMNodeInserted", function(evt){ var tar = evt.target; - if (evt.eventPhase === Event.AT_TARGET && !tar.getAttributeNodeNS("http://www.w3.org/1999/xlink", "xlink:href")) { - var ftar = tar.firstChild; - if (ftar.nodeType === Node.CDATA_SECTION_NODE) { - tar._text = ftar.data; + if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (tar.nodeName === "#cdata-section") { + evt.currentTarget._text = tar.data; } - var evtt = tar.ownerDocument.createEvent("SVGEvents"); - evtt.initEvent("SVGLoad", false, false); - evt.currentTarget.dispatchEvent(evtt); + return; } - tar = evt = null; + tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt){ + var tar = evt.target; + if (evt.eventPhase === Event.AT_TARGET && !tar.getAttributeNodeNS("http://www.w3.org/1999/xlink", "xlink:href")) { + var evtt = tar.ownerDocument.createEvent("SVGEvents"); + evtt.initEvent("SVGLoad", false, false); + evt.currentTarget.dispatchEvent(evtt); + } + tar = evt = null; + }, false); }, false); return this; }; @@ -4715,7 +4720,9 @@ *baseValと同じような値に設定。 */ trans.animVal = new SVGTransformList(); - trans.animVal.initialize(trans.baseVal.createSVGTransformFromMatrix(trans.baseVal.getItem(0).matrix)); + if (trans.baseVal.numberOfItems !== 0) { + trans.animVal.initialize(trans.baseVal.createSVGTransformFromMatrix(trans.baseVal.getItem(0).matrix)); + } trans.animVal.appendItem(tar.ownerDocument.documentElement.createSVGTransform()); tar._frame = function() { var _tar = tar, tpn = _tar._path;