21. februar 2005 - 12:41Der er
9 kommentarer og 1 løsning
2 koder - den ene ødelægger den anden?
Har en kode som tilpasser min iframe efter indhold. På siden som vises i iframe er der desuden en mouse-over knap/billede og koden gør åbentbart at iframe tilpasser sig efter indhold....
Hvad er galt?
Ved ikke om dette er nok (vil helst ikke vise siden, da det er lidt tys-tys):
<script language="javascript" type="text/javascript"> <!-- function ifrHeight(){ var t=document.body.scrollHeight; if(parent!=window)parent.document.getElementById('IFRAMEID').style.height=t+1+'px'; } window.onload=ifrHeight;
function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); }
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> <script language="javascript" type="text/javascript"> <!-- function ifrHeight(){ var t=document.body.scrollHeight; if(parent!=window)parent.document.getElementById('IFRAMEID').style.height=t+1+'px'; } window.onload=ifrHeight;
function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); }
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> ---------------------------------- Ovenstående kode står der når jeg har hover-billed på siden og så virker tilpasningen i iframe ikke. ----------------------------------
<script language="javascript" type="text/javascript"> <!-- function ifrHeight(){ var t=document.body.scrollHeight; if(parent!=window)parent.document.getElementById('IFRAMEID').style.height=t+1+'px'; } window.onload=ifrHeight;
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];}} } //--> </script> ---------------------------------- Ovenstående kode står der når jeg ikke har hover-billed på siden og så virker tilpasningen i iframe. ----------------------------------
Det ligner DW-kode og den sætter, så vidt jeg husker, en preload funktion ind i en onload-handler på body-tag'et. Derved ender du op med to onload-handlers i samme dokument, hvoraf den sidste overskriver den første ;o)
<script language="javascript" type="text/javascript"> <!-- function ifrHeight(){ var t=document.body.scrollHeight; if(parent!=window)parent.document.getElementById('IFRAMEID').style.height=t+1+'px'; } window.onload = function() { ifrHeight(); Din_Preload_Funktion_Her('argument', ..... , 'argument'); }
function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); }
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>
- og fjern så onload-handleren i body-tag'et ... så skulle det gerne køre som barnefingre gennem en bakke Kærgården :)
... det var måske lidt utydeligt. Flyt preload-funktionen fra body-tag'et op til den onload-handler, jeg har skrevet i scriptet. Håber, det er tydeligt nok :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.