diff --git a/Source/Element/Element.js b/Source/Element/Element.js index e35f68b11..4d3008b09 100644 --- a/Source/Element/Element.js +++ b/Source/Element/Element.js @@ -800,6 +800,7 @@ var formProps = {input: 'checked', option: 'selected', textarea: 'value'}; Element.implement({ destroy: function(){ + if(! this.getElementsByTagName) return null; //textNode var children = clean(this).getElementsByTagName('*'); Array.each(children, clean); Element.dispose(this); @@ -807,11 +808,12 @@ Element.implement({ }, empty: function(){ - Array.from(this.childNodes).each(Element.dispose); + Array.from(this.childNodes).each(Element.destroy); return this; }, dispose: function(){ + this._fireEvent = null; return (this.parentNode) ? this.parentNode.removeChild(this) : this; }, @@ -949,6 +951,13 @@ Element.Properties.html = { }; +// fix for IE leak on Element.set('text','') +Element.Properties.text = { + set: function(text){ + Element.prototype.empty.call(this).setProperty('text',text); + } +} + var supportsHTML5Elements, supportsTableInnerHTML, supportsTRInnerHTML; /**/