delete window[this.tipFnName]
越来越发现Ext的源码中很多地方对数据的有效性检验的不够好,甚至很多地方都没有检验便对其进行操作,例如Ext obj.ucountry is null错误。
这次遇到的错误是发生在Ext.chart.Chart组件,当在TabPanel的一个子Panel中使用了该组件并关闭当前的子Panel时,在火狐下不会有任何问题,而IE下则会报错,错误停留在源码中的delete window[this.tipFnName]这句上。
这个错误发生在销毁组件的方法中,源码如下:
onDestroy: function(){ Ext.chart.Chart.superclass.onDestroy.call(this); delete window[this.tipFnName]; }
可以看到这里对this.tipFnName没有做任何判断便执行了delete操作。那么解决方法就很简单了:
Ext.override(Ext.chart.Chart, { onDestroy: function(){ Ext.chart.Chart.superclass.onDestroy.call(this); if(this.tipFnName){ delete window[this.tipFnName]; } } });
除非另有声明,本站遵循【署名-非商业性使用-相同方式共享 3.0 共享协议】授权。
转载原创文章请注明,转载自:Neeke[http://www.ineeke.com]
本文链接: http://www.ineeke.com/archives/delete-window-this-tipfnname/

用GridPanel时出现’this.ds is undefined’,debug一下发现
没记错的话ds就是store
嗯,我知道了,后来我new 了一个Ext.data.JsonStore()给ds就不报错了
第一个浏览第一个留言,对你不错吧