By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,442 Members | 1,265 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,442 IT Pros & Developers. It's quick & easy.

What could cause scrollWidth to return 0?

P: n/a
I have a "child" document that I use for an IFRAME element that I put into
several "parent" documents. These "parent" documents therefore contain the
IFRAME whose SRC property is set to the "child" document.

The parent(s) have three Javascript functions, here they are:

// =============================

var gMargin = 5;

function getScrollWidth(doc, callerId)
{

if (true)
{
// If no document reference was passed, assume it is the
// current document.
if (!doc)
doc = document;

var ret;

if (doc.all)
{
// Internet Explorer.
if (doc.compatMode &&
doc.compatMode != 'BackCompat')
ret = doc.documentElement.scrollWidth + gMargin + 'px';
else
ret = doc.body.scrollWidth + gMargin + 'px';
} // if (doc.all)
else if (doc.width)
// Other browsers.
ret = doc.width + gMargin + 'px';

// alert('(getScrollWidth) Returning scroll width(' + ret + ') to
caller Id: ' + callerId);

return ret;
} // if (true)
}

// =============================

function getScrollHeight(doc, callerId)
{
if (true)
{
// If no document reference was passed, assume it is the
// current document.
if (!doc)
doc = document;

var ret;

if (doc.all)
{
// Internet Explorer.
if (doc.compatMode &&
doc.compatMode != 'BackCompat')
ret = doc.documentElement.scrollHeight + gMargin + 'px';
else
ret = doc.body.scrollHeight + gMargin + 'px';
} // if (doc.all)
else if (doc.height)
// Other browsers.
ret = doc.height + gMargin+ 'px';

// alert('(getScrollHeight) Returning scroll height(' + ret + ') to
caller Id: ' + callerId);

return ret;
} // if (true)
}

// ---------------------------------------------------------------

function getScrollHeight(doc, callerId)
{
if (true)
{
// If no document reference was passed, assume it is the
// current document.
if (!doc)
doc = document;

var ret;

if (doc.all)
{
// Internet Explorer.
if (doc.compatMode &&
doc.compatMode != 'BackCompat')
ret = doc.documentElement.scrollHeight + gMargin + 'px';
else
ret = doc.body.scrollHeight + gMargin + 'px';
} // if (doc.all)
else if (doc.height)
// Other browsers.
ret = doc.height + gMargin+ 'px';

// alert('(getScrollHeight) Returning scroll height(' + ret + ') to
caller Id: ' + callerId);

return ret;
} // if (true)
}

// ---------------------------------------------------------------

In the "onload" event of the "child" document, a call is made to a function
call in the "parent"'s Javascript like this:

<BODY onload="parent.resizeIFrame(document, parent.getScrollWidth(),
parent.getScrollHeight(), 'test');" >
.... // rest of HTML
</BODY>
causing the "parent" document to resize the IFRAME to the scrollWidth and
scrollHeight of the "child" document. It works great on one "parent"
document, but on another I get 0 for the "child" document's scrollWidth and
scrollHeight properties.

What could cause this?

BTW, Testing is being done with Internet Explorer 6.x.

thx

--

Robert Oschler
Jul 20 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
I accidentally duplicated the getScrollHeight() function call and forgot the
resizeIFrame() function call, here is the latter:

function resizeIFrame(id, x, y, callerId)
{
var SX = "";
var SY = "";

if (true)
{
SX = x + '';
SY = y + '';

if (SX.indexOf('px') == -1)
SX = SX + 'px';

if (SY.indexOf('px') == -1)
SY = SY + 'px';

// alert("(resizeIFrame), called by '" + callerId + "'> id = " + id
+ ", x = " + x + ", y = " + y);

var iframeElement = null;

// alert("(resizeIFrame) set iframeElement to null.");
if (top.document.all)
{
// Internet Explorer.
// alert('(resizeIframe) IE browser.');
iframeElement = top.document.all[id];

} // if (document.all)
else if (top.document.height)
{
// Other browsers.
// alert('(resizeIframe) Non-IE browser.');
iframeElement =
top.document.getElementById(id);
} // else if (top.document.height)

if (iframeElement)
{
iframeElement.style.width = x;
iframeElement.style.height = y;
// alert("(resizeIFrame) iframeElement.style (width, height) = "
+ iframeElement.style.width + ", " + iframeElement.style.height);
}
else
alert('(resizeIFrame) iframeElement is null for id = ' + id);
} // if (true)
}

// ---------------------------------------------------------------
--

Robert Oschler
Jul 20 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.