Opened 12 years ago

Closed 12 years ago

#4242 closed defect (worksforme)

dijit.layout.layoutChildren: dim argument may be undefined, Internet Explorer

Reported by: Tom Trenka Owned by: bill
Priority: high Milestone: 1.0
Component: Dijit Version: 0.9
Keywords: layout, _contentBox Cc:
Blocked By: Blocking:

Description

For some reason, under certain situations (seems to be when nesting a programmatically created SplitContainer? somewhere in the descendant tree of a TabContainer?), when trying to run dijit.layout.layoutChildren, the second argument passed (dim) may be undefined. This causes an error with dojo._mixin (another ticket was just filed on it), and when elm properties are set after the fact.

Not sure what to do about it--if the issue is because IE doesn't have a measurement on a domNode that's not part of the document, or if there should just be some extra checking in layoutChildren or what.

A sure sign is the following error message in IE:

"toString is null or not an object"

...which is thrown when dojo._mixin is called, probably as the result of something like this:

var obj=dojo.mixin({}, undefined);

...which happens in:

http://trac.dojotoolkit.org/browser/dijit/trunk/layout/_LayoutWidget.js

line 136.

Change History (3)

comment:1 Changed 12 years ago by guest

Workaround: the var causing this error is "this._contentBox", (a dimension object) in TabContainer?. It appears to happen when the tab is resized before the pane is completely built.

In our object that extends the TabContainer?, I added a property: _contentBox: {l:0,t:0,w:0,h:0}, dojo.coords formatted object

...this prevents a null object from passing through the system.

-submitted by Mike Wilcox

comment:2 Changed 12 years ago by bill

I really need a testcase to be able to fix this. Otherwise nothing to do but close it as "can't reproduce".

comment:3 Changed 12 years ago by bill

Resolution: worksforme
Status: newclosed
Note: See TracTickets for help on using tickets.