View Full Version : Fade Transition in IFrame

11-21-2007, 08:16 AM

I am relatively new to this forum and tried to search for this topic or similar but couldn't find anything. So I apologize in advance if I'm asking a question that is already answered previously.

I have a page with iFrame to which I'm uploading a php page (on the same server) with dynamic content. As a result I needed to resize the iFrame dynamically based on the height of the uploaded page/content.

I use the script below to resize the iFrame and works just fine.

Now I'm trying to add Fade transition effect to the pages that I upload into the iFrame. I added the META tag:

<META HTTP-EQUIV="Page-Enter" CONTENT="blendTrans(Duration=2.4)">

to the php template. Unfortunately the effect doesn't happen. however, if I turn the resize script off, the transition takes place as expected.

I suspect the transition is actually happening, however because I am resizing the iFrame dynamically, the effect is probably not seen because the iFrame gets displayed only after the entire page is loaded.

I am not sure if what I'm trying to do is possible, but I was hoping someone here might have some creative work around.


* IFrame SSI script II- Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
* Visit DynamicDrive.com for hundreds of original DHTML scripts
* This notice must stay intact for legal use

//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=["myframe"];

//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="yes";

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1];
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0; //extra height in px to add to iframe in FireFox 1.0+ browsers

function resizeCaller() {
var dyniframe=new Array();
for (i=0; i<iframeids.length; i++){
if (document.getElementById)
//reveal iframe for lower end browsers? (see var above):
if ((document.all || document.getElementById) && iframehide=="no"){
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])

function resizeIframe(frameid){
var currentfr=document.getElementById(frameid)
if (currentfr && !window.opera){
if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight;
else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
currentfr.height = currentfr.Document.body.scrollHeight+20;
if (currentfr.addEventListener)
currentfr.addEventListener("load", readjustIframe, false)
else if (currentfr.attachEvent){
currentfr.detachEvent("onload", readjustIframe) // Bug fix line
currentfr.attachEvent("onload", readjustIframe)

function readjustIframe(loadevt) {
var crossevt=(window.event)? event : loadevt
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
if (iframeroot)

function loadintoIframe(iframeid, url){
if (document.getElementById)

if (window.addEventListener)
window.addEventListener("load", resizeCaller, false)
else if (window.attachEvent)
window.attachEvent("onload", resizeCaller)

11-22-2007, 04:51 AM
Wow.. did I hit something really complicated?