PDA

View Full Version : flash to control iframe height


gristy
05-10-2005, 05:29 PM
hi people

i found a nifty piece of javascript which adjusts the height of an iframe to the page loaded in it.

here is the code you place in your html page (in the head tags):

<script type="text/javascript">

/***********************************************
* 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=["content"]

//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(navigat or.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)
resizeIframe(iframeids[i])
//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])
tempobj.style.display="block"
}
}
}

function resizeIframe(frameid){
var currentfr=document.getElementById(frameid)
if (currentfr && !window.opera){
currentfr.style.display="block"
if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextr aHeight;
else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
currentfr.height = currentfr.Document.body.scrollHeight;
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)
resizeIframe(iframeroot.id);
}

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

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

</script>

obviously you change the myframe variable at the top to the name of the iframe you want to resize, which in my case is "content."

at present i have a button that will open my visual page in my content iframe. it has the following AS attached to it:
on (release)
getURL("visual.html","content");
}

if it was just a simple html link and not a flash button then i would the following code:
<a href="javascript:loadintoIframe('content, 'visual.html')">Link</a>

so how do i attach the javascript to my flash button? i tried:
on (release)
getURL("javascript:loadintoIframe("visual.html","content")");
}

but it doesn't work!

i have searched the site and i apologize as i realise there are a huge amount of threads like this but none seemed to help. besides, i thought sharing this javascript with you would be worth a thread alone...

thanks in advance

gristy

Boskic.com
05-11-2005, 12:32 PM
on (release)
{
getURL("javascript:loadintoIframe(\'content\', \'visual.html\');void(0)");
}

moogi72
10-27-2005, 04:50 PM
I have tried with above actionscript, but it still doesn't work.
Is there any more problems in javascript setting?

basically, I copied and pasted the long javascript on the head of HTML page.
and named iframe "main-content" and changed the iframe variable on top of Javascript code.

still doesn't work.

gristy
10-28-2005, 12:17 AM
yo

i remember getting it working, but only in IE and not firefox or any other browsers....

let me know if you're really stuck and ill have a look back at my code (will mean getting my laptop out of the attic :p :p :p )

gristy

expIorer
03-01-2007, 07:26 AM
jip.jelgava.lv (http://jip.jelgava.lv)