Friday, February 23, 2024
 Popular · Latest · Hot · Upcoming
123
rated 0 times [  126] [ 3]  / answers: 1 / hits: 28903  / 15 Years ago, wed, march 11, 2009, 12:00:00

So I have a div whose content is generated at runtime it initially has no height associated with it. When it's generated according to firebug and from what I can alert with js the div still has a height of 0. However, looking at the read-only properties with firebug I can see that it has an offset height of 34. It's this value that I need. Hopefully it's obvious but in case it isn't, this number is variable, it's not always 38.



So, I thought that I could just get that by doing this via jquery...



$(#parentDiv).attr('offsetHeight');


or this with straight js...



document.getElementById(parentDiv).offsetHeight;


But all that is returned is 0. Does it have anything to do with the fact that offset height is a read-only property in this instance? How can I get this height? I mean firebug is figuring it out somehow so it seems like I should be able to.



Edit:
Here's a sample of what the div looks like right now...



<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML Strict//EN><META http-equiv=Content-Type content=text/html; charset=utf-8>

<HTML style=OVERFLOW: hidden; HEIGHT: 100% xmlns=http://www.w3.org/1999/xhtml><BODY><FORM id=aspnetForm name=aspnetForm action=blah.aspx method=post><DIV id=container>

<DIV id=ctl00_BodyContentPlaceHolder_Navigation style=Z-INDEX: 1; LEFT: 1597px; POSITION: absolute; TOP: 67px>
<DIV class=TransparentBg id=TransparentDiv style=MARGIN-TOP: 10px; MARGIN-RIGHT: 10px; HEIGHT: 94px; TEXT-ALIGN: center>
</DIV>
<DIV class=Foreground id=ForegroundId style=MARGIN-TOP: 10px; MARGIN-RIGHT: 10px; TEXT-ALIGN: center>
<DIV id=ctl00_BodyContentPlaceHolder_Navigation1 style=WIDTH: 52px; COLOR: black; HEIGHT: 52px; BACKGROUND-COLOR: transparent; -moz-user-focus: normal>
<IMG style=FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod = scale src='../images/image.gif'); CURSOR: pointer height=52 hspace=0 src=... width=52 />
</DIV>
<DIV id=ctl00_BodyContentPlaceHolder_UserControl name=ctl00_BodyContentPlaceHolder_UserControl>
<IMG style=DISPLAY: block; VERTICAL-ALIGN: bottom; CURSOR: pointer height=17 src=... width=16 />
<IMG style=VERTICAL-ALIGN: top; CURSOR: pointer height=17 src=... width=16 />
</DIV>
</DIV>
</DIV>

</DIV></FORM></BODY></HTML>


This code is being generated by a control in a separate library. So here's the actual code creating it in my .aspx page.



<blah:blahControl ID=control runat=server />


Ok, it's edited slightly but thats a whole lot more HTML than I had before. The div I was referring to as parentDiv before is called ctl00_BodyContentPlaceHolder_UserControl up there. That code includes the div in question, it's sibling, parent, grandparent and children. It's almost a direct copy from firebug.



Update:
I should have mentioned this is being done in IE 7. It seemed to work fine one time in Firefox, but it's returning 0 now. Does this provide any new insights of possible work-arounds or anything?



... You all must think I'm nuts.



Update:
Some styling...



.TransparentBg 
{
background-color: white;
filter:alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
}

.Foreground
{
position: absolute;
top: 0px;
}

More From » jquery

 Answers
2

Are you sure it's not a Heisenbug? If you are setting the height somewhere programmatically and then trying to read it soon later, there is a chance DOM would not have updated.


[#99863] Wednesday, March 4, 2009, 15 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
zoiel

Total Points: 692
Total Questions: 90
Total Answers: 89

Location: Rwanda
Member since Thu, Feb 10, 2022
2 Years ago
;