http://extjs.com/forum/showthread.ph...095#post343095
Printable View
Ive removed the setHeight fix i was using and put in the syncHeight override provided.
The problem came back.
Another fix has been committed to resolve this problem.
Ok, so same thing happens to me too with ExtJS 3.4.0.
The error thrown is at this line:
height is an NaN.Code:!animate || !me.anim ?
me.dom.style.height = me.addUnits(height) :
me.anim({height : {to : height}}, me.preanim(arguments, 1));
me.addUnits(height) returns "NaNpx"
and IE does not agree to place a String at me.dom.style.height, while Chrome is ok with it.
This explains the illegal argument exception.
This above excerpt of code is from setHeight which is called from syncHeight:
Here lsh is "100%" and of course when performing the calculation:Code:syncHeight : function(){
var h = this.toolbarHeight,
bd = this.body,
lsh = this.lastSize.height,
sz;
if(this.autoHeight || !Ext.isDefined(lsh) || lsh == 'auto'){
return;
}
if(h != this.getToolbarHeight()){
h = Math.max(0, lsh - this.getFrameHeight());
bd.setHeight(h);
sz = bd.getSize();
this.toolbarHeight = this.getToolbarHeight();
this.onBodyResize(sz.width, sz.height);
}
},
h = Math.max(0, lsh - this.getFrameHeight());
the result of "100%" - 38 is NaN
after that bd.setHeight(h) is called with NaN.
So this bug is till open, and I fail to understand yet how to fix it.
Thanks,
Asaf
I also found a similar issue w/IE8 and Ext 3.1.1, I'm not sure if this the right place to post it [I hope Sencha support can correct me].
My structureMyContainer1 > MyContainer2 > MyPanel > MyCombo
Using Ext.js 3Trying to call setHeight([a positive value]) on MyContainer2 or doLayout() on MyContainer1 wouldn't work correctly on IE.
AnalysisAt some point the comboBox doResize(w) method was being called with w undefined.This was leading to the same effects described by @asafm , with setWidth(NaN) being called since Math.max( undefined, this.minListWidth) returns NaN;
My FixCode:MyCombo = Ext.extend(Jx.form.JxComboBox, {
//...
doResize: function(w){
if(!Ext.isDefined(this.listWidth) && !isNaN(w)){
var lw = Math.max(w, this.minListWidth);
this.list.setWidth(lw);
this.innerList.setWidth(lw - this.list.getFrameWidth('lr'));
}
}
}