PDA

View Full Version : Help with IFRAME needed please!!!!



mysty
06-02-2006, 11:03 PM
I need help if possible regarding my website i have the website setup fine apart from the IFRAME i have inserted, it seems to open up in a new window completly filling it when it should be between the content bars also i cant seem to set it so that it automaticaly finds the correct hight of the page being displayed within the iframe (eg not having to have scrollbar)
If some body could help me i would be very gratefull also i have pasted the entire IFRAME content to make it easier for those who may be able to help.


<script language="JavaScript" type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
<style type="text/css">
<!--
input {
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #FFFFFF;
border: 1px;
background-color: #4A4A4A;
}
</style>
</head>
<script type="text/javascript">
var iframeids=["iframe"]
//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)
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+FFextraHeight;
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>>


<td colspan="4" rowspan="7" valign="top" bgcolor="#353535"><iframe id="iframe" src="home.html" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" style="overflow:visible; width:100%; display:none"></iframe>
</table></td>


Thanks to those in advance for any help they can give ;)

jscheuer1
06-03-2006, 04:02 AM
Since this script (resize iframe) cannot function if the content is from another domain, that could be a part of your problem. Where is the page and where does the iframe content come from? Also, if the content comes from another domain, that domain may have their pages set to 'break out of frames'. If this is the case, loading a page like that into any frame or iframe will result in the loaded page simply taking over the current window.

Another thing, when you paste code into a message here, please place:




code goes here



around the code so that it looks like so when previewed and posted:




code goes here



Otherwise line breaks may get introduced that make troubleshooting the code virtually impossible.

If this is a Dynamic Drive script, please post a link to its demo page here on Dynamic Drive. This allows us to be sure we are working with the same script, as well as giving us something we can refer to for a host of explanations, and comparisons. And, include the script credit wherever you post or use the script.

Also, a link to your page that has the problem would be more helpful than any code you could post in a message.

cbulmer
06-03-2006, 09:05 PM
To auto detect wether the iframe needs scrollbars or not, add this to the
<iframe> tag
scrolling="auto"