Bugs item #544180, was opened at 2002-04-15 14:08 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=105757&aid=544180&group_id=5757
Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: David Scanlan (dscanlan) Assigned to: Nobody/Anonymous (nobody) Summary: Dynlayer.js elm error, NS4 + IE5, R2.56 Initial Comment: When I attempt to use DynAPI.document.addChild to add a layer, I get 'elm' errors in both NetScape (4.76) and IE5 NetScape error dynlayer.js line 103 elm has no properties. IE error line 91 'elm.style' is null or not an object Basically, I have two parts to this, which are both generated by the same code. The 'StdLayer' code completes OK, the 'StdEditLayer' code completes with the error. As soon as I do anything after this in NS, the application crashes out. I'm running release 2.56. I can't see what I have done to get this situation. Any pointers you could give me would be much appreciated. I have to admit that this was working, but I can't find out what I have done to stop it from working.... :-( PS. The application displays a tabbed page, where the users can click on the tabs to display different information. Everything works fine for the read-only displays, but the editable information fails. StdLayer = new DynLayer( null,0,0,PageWidth,PageHeight,null,false,10 ); StdTFLayer = new TableFrame( TableFromX,TableFromY,TableWidth,TableHeight, StdHTMLNoEdit ); StdLayer.addChild( StdTFLayer ); var TabX = (TableWidth/10) + TableFromX; StdLayerTab1 = new Tab( TabX , TableFromY , 100 , TableWidth/8 , null , 'Standard', '' ); StdLayer.addChild( StdLayerTab1 ); TabX = TabX + TableWidth/7.5; StdLayerTab2 = new Tab( TabX , TableFromY , 98, TableWidth/8 , null , 'People Tracker' , 'DisplayLayer("PTrack");' ); StdLayer.addChild( StdLayerTab2 ); TabX = TabX + TableWidth/7.5; StdLayerTab3 = new Tab( TabX , TableFromY , 97, TableWidth/8 , null , 'Absences' , 'DisplayLayer("Absences");' ); StdLayer.addChild( StdLayerTab3 ); TabX = TabX + TableWidth/7.5; var Test1 = "Std\n"; for (prop in StdLayer) Test1 += 'name: ' + prop + "\t"; DynAPI.document.addChild( StdLayer ); StdEditLayer = new DynLayer( null,0,0,PageWidth,PageHeight,null,false,10 ); StdTFELayer = new TableFrame( TableFromX,TableFromY,TableWidth,TableHeight,StdHTMLEdit ); StdEditLayer.addChild( StdTFELayer ); var TabX = (TableWidth/10) + TableFromX; StdEditLayerTab1 = new Tab( TabX , TableFromY , 100 , TableWidth/8 , null , 'Standard', '' ); StdEditLayer.addChild( StdEditLayerTab1 ); TabX = TabX + TableWidth/7.5; StdEditLayerTab2 = new Tab( TabX , TableFromY , 98, TableWidth/8 , null , 'People Tracker' , 'DisplayLayer("PTrack");' ); StdEditLayer.addChild( StdEditLayerTab2 ); TabX = TabX + TableWidth/7.5; StdEditLayerTab3 = new Tab( TabX , TableFromY , 97, TableWidth/8 , null , 'Absences' , 'DisplayLayer("Absences");' ); StdEditLayer.addChild( StdEditLayerTab3 ); TabX = TabX + TableWidth/7.5; Test1 += "\n\nStdEdit (Final)\n"; for (prop in StdEditLayer) Test1 += 'name: ' + prop + "\t"; alert( Test1 ); DynAPI.document.addChild( StdEditLayer ); // **** This is where the error occurs **** alert( 'Child layers added to StdEditLayer'); ************************************** TableFrame & Tab definitions.... // // Now we include the constructors for the TabulatedForm and Tabs // function Tab(x,y,z,w,h,contents,execFunc) { this.h = h || ButtonHeight; this.w = w || 80; this.z = z || 1; this.dynlayer=DynLayer; this.dynlayer(null,x,y,this.w,this.h,null,true,this.z); this.contents = contents || ''; this.execFunc = execFunc|| ''; this.addEventListener(Tab.listener); return this } Tab.prototype=new DynLayer(); Tab.listener=new EventListener(); Tab.listener.onprecreate=function(e) { var o=e.getSource(); // Specify the button or Layer to be displayed... if(o.execFunc=='') { // No functionality should be included here. o.button = new DynLayer(null,7,7,o.w-14,o.h-14,'#C2C2C2',true,null,null,'<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD NOWRAP WIDTH=' + (o.w-14).toString() + ' Class=SelectTab' + NoEditBaseFontSize + '>' + o.contents + '</TD></TR></TABLE>'); } else { // We need to execute this function, so therefore include a button o.button = new DynLayer(null,7,7,o.w-14,o.h-14,'#C2C2C2',true,null,null,'<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD NOWRAP WIDTH=' + (o.w-14).toString() + ' Class=Tab' + NoEditBaseFontSize + '>' + o.contents + '</TD></TR></TABLE>'); Listener=new EventListener(o.button); Listener.onmouseover=function(e) { target=e.getTarget(); target.setBgColor('#D8D8D8'); } Listener.onmouseout=function(e) { target=e.getTarget(); target.setBgColor('#C2C2C2'); } Listener.onmouseup = function(e) { if(DebugFlag) alert('Executing ' + o.execFunc ); eval(o.execFunc); } o.button.addEventListener(Listener); } o.addChild(o.button); // Build the border around the tab o.addChild(new DynLayer(null,0,0,null,null,null,true,2,null,BuildIMG(BorderTopLeft))); o.addChild(new DynLayer(null,o.button.getWidth()+7,0,null,null,null,true,2,null,BuildIMG(BorderTopRight))); o.addChild(new DynLayer(null,0,o.getHeight(),null,null,null,true,2,null,BuildIMG(BorderBottomLeft))); o.addChild(new DynLayer(null,o.button.getWidth()+7,o.getHeight(),null,null,null,true,2,null,BuildIMG(BorderBottomRi ght))); o.addChild(new DynLayer(null,7,0,o.button.getWidth(),null,null,true,2,null,BuildIMG(BorderTop,'WIDTH='+(o.button.g etWidth())+' HEIGHT=7'))); o.addChild(new DynLayer(null,0,7,7,o.getHeight()-14,null,true,2,null,BuildIMG(BorderLeft,'HEIGHT='+(o.getHeight()- 14)+' WIDTH=7'))); o.addChild(new DynLayer(null,o.button.getWidth()+7,7,7,o.getHeight()-14,null,true,2,null,BuildIMG(BorderRight,'HEI GHT='+(o.getHeight()-14)+' WIDTH=7'))); } function TableFrame(x,y,w,h,contents,tabHeight) { var TFHeight = tabHeight || ButtonHeight; this.dynlayer=DynLayer; this.dynlayer(null,x,y,w+14,h+14+TFHeight,null,true,20); this.contents = contents || ''; this.tabHeight = TFHeight; this.addEventListener(TableFrame.listener); return this } TableFrame.prototype=new DynLayer(); TableFrame.listener=new EventListener(); TableFrame.listener.onprecreate=function(e) { var o=e.getSource(); // Build the border around the table - The Corners o.addChild(new DynLayer(null,0,o.tabHeight-7,7,7,null,true,5,null,BuildIMG(BorderTopLeft))); o.addChild(new DynLayer(null,TableWidth+7,o.tabHeight-7,null,null,null,true,5,null,BuildIMG(BorderTopRight))); o.addChild(new DynLayer(null,0,TableHeight+o.tabHeight,null,null,null,true,5,null,BuildIMG(BorderBottomLeft))); o.addChild(new DynLayer(null,TableWidth+7,TableHeight+o.tabHeight,null,null,null,true,5,null,BuildIMG(BorderBottom Right))); // Top and Bottom o.addChild(new DynLayer(null,7,o.tabHeight-7,null,null,null,true,5,null,BuildIMG(BorderTop,'WIDTH='+(TableWidth)+' HEIGHT=7'))); o.addChild(new DynLayer(null,7,TableHeight+o.tabHeight,null,null,null,true,5,null,BuildIMG(BorderBottom,'WIDTH='+( TableWidth)+' HEIGHT=7'))); // Left and Right o.addChild(new DynLayer(null,0,o.tabHeight,7,TableHeight,null,true,5,null,BuildIMG(BorderLeft,'HEIGHT='+(TableHeig ht)+' WIDTH=7'))); o.addChild(new DynLayer(null,TableWidth+7,o.tabHeight,7,TableHeight,null,true,5,null,BuildIMG(BorderRight,'HEIGHT ='+(TableHeight)+' WIDTH=7'))); // Include the table o.addChild(new DynLayer(null,7,o.tabHeight,null,null,null,true,null,null,o.contents)); } ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=105757&aid=544180&group_id=5757 _______________________________________________ Dynapi-Dev mailing list [EMAIL PROTECTED] http://www.mail-archive.com/dynapi-dev@lists.sourceforge.net/