R
Robert Oschler
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
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