All 4.0 classes have a `tagname` field. Anywhere you used `classname` in 3.x you should use `constructor.tagname` in 4.x. We did this because LFC class names are different from the tag they represent and we wanted a uniform API for both LZX and core classes. Using `constructor.tagname` will be forward compatible.
On 2009-11-15, at 09:38, Raju Bitter wrote: > Thanks, Tucker. But that would only work for 4.1, I guess. 4.0.x didn't use > the lz. namespace. I found a workaround using a bit more of initialization > code. > > - Raju > > On Nov 15, 2009, at 2:49 PM, P T Withington wrote: > >> On 2009-11-15, at 06:19, Raju Bitter wrote: >> >>> In an old app OL 3.4 app I used the following code: >>> >>> var tabs = parent.searchSubnodes('classname', 'CustomTabs'); >>> >>> But in 4.0.18 (Webtop) that doesn't work any more. What happened to the >>> concept of being able to access the name of the class through >>> nodeObject.classname? That worked in 3.3, and in 4.0.18 (Webtop) it returns >>> "Object", which is not very helpful. By looking at the source code for >>> LzNode I saw that it's possible to access the real classname through >>> object.constructor.classname. >>> >>> Is that a bug, or a feature? >> >> You want to update your code to use 'tagname' instead of 'classname'. This >> was part of the attempt to make the LFC and user classes uniformly >> accessible. For all tags `t` in LZX: >> >> lz[t].tagname === t >> >> >