Avatar billede miss-g Seniormester
21. februar 2005 - 12:41 Der 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>
Avatar billede roenving Novice
21. februar 2005 - 16:05 #1
Det ser ikke ud til, at problemet kommer fra den kode, du viser ...
Avatar billede miss-g Seniormester
21. februar 2005 - 20:36 #2
</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.
----------------------------------

Fatter det ikke!!?
Avatar billede olebole Juniormester
21. februar 2005 - 22:39 #3
<ole>

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  :)

/mvh
</bole>
Avatar billede olebole Juniormester
21. februar 2005 - 22:41 #4
... 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  :)
Avatar billede miss-g Seniormester
22. februar 2005 - 14:38 #5
Thanks - men nej, er ikke tydligt nok.

Går ud fra at det er denne du mener:

---------------------------------------------------
<body bgcolor="#1668A0" onLoad="MM_preloadImages('images/messenger-ikon-h.gif')">
----------------------------------------------------

Hvordan skal den skrives oppe i javascript koderne? Kan ikke scripte....suk.
Avatar billede roenving Novice
22. februar 2005 - 16:41 #6
window.onload = function() {
    ifrHeight();
    MM_preloadImages('images/messenger-ikon-h.gif');
}

-- og:

<body bgcolor="#1668A0">
Avatar billede miss-g Seniormester
04. marts 2005 - 12:07 #7
Tak det virkede.

Læg nogle svar *S*
Avatar billede miss-g Seniormester
10. marts 2005 - 22:16 #8
Vil I slet ikke have point?

Mangler svar så jeg kan lukke *S*
Avatar billede roenving Novice
11. marts 2005 - 10:20 #9
Det var jo bare en præcisering af oles beskrivelse, så det er vel ham, som er hjemfalden til point ;~}
Avatar billede olebole Juniormester
12. marts 2005 - 12:43 #10
Jamen, så lægger jeg et svar  :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester