Avatar billede oldschool Nybegynder
28. august 2006 - 12:12 Der er 13 kommentarer og
1 løsning

Højde på ifrmaes

Hej

Jeg ved der er MANGE spørgsmål om dette her, men har ikke kunne finde en løsning som jeg kunne få til af fungere. Så vil være rigtig dejligt hvis der var en der kunne hjælpe...

Har en index side med nogle tables. I det ene har jeg en iframe som loader main.htm

<tr>
<td valign="top" id="main"><iframe name="main" id="main" src="main.htm" style="width: 780; height: 100;"></iframe></td>
</tr>

Jeg vil så gerne have at iframens højde bliver bestemt af indeholdets højde i main.htm og derefter ændres efter hvilken side der loades i iframen...

Har fundet dette script

<script>
function juster() {
dw = document.body.scrollHeight;
fw = document.body.offsetHeight;
diff = dw - fw + 20;
obj = (document.getElementById) ? parent.document.getElementById("ifr").style : parent.document.all.ifr.style;
h = parseInt(obj.height);
obj.height = h + diff;
}
</script>

men er ikke sikker på om/hvordan/hvorledes det virker og hvor det skal indsættes, præcist.

Håber der er nogle der kan hjælpe:)

Oldschool
Avatar billede oldschool Nybegynder
30. august 2006 - 14:47 #1
Lukker her, har prøvet alt (næsten;) ) og opretter et andet spg med anden formulering. Poster link om 5 min...
Avatar billede dotcom1 Nybegynder
30. august 2006 - 14:48 #2
Jeg bruger ofte dette: http://www.dynamicdrive.com/dynamicindex17/iframessi2.htm som virker perfekt.
Avatar billede dotcom1 Nybegynder
30. august 2006 - 14:49 #3
Dog skal currentfr.contentDocument.body.offsetHeight være currentfr.contentDocument.documentElement.scrollHeight for at det er helt cross-browser.
Avatar billede oldschool Nybegynder
30. august 2006 - 14:53 #4
Ok tak, har også prøvet det, men kan ikke få det til at fungere!

Har oprettet nyt spg

http://www.eksperten.dk/spm/729348

Prøver lige at skifte den linje ud...

takker:O)
Avatar billede dotcom1 Nybegynder
30. august 2006 - 14:55 #5
Kommer indholdet i iframen fra samme server som siden med iframen?
Avatar billede oldschool Nybegynder
30. august 2006 - 14:59 #6
Altså jeg indsætter selve scriptet i min head i min index fil som har iframen. Jeg bytter din linje ud og retter hvilke iframe den skal rette størrelse på. Men det fungere ikke. Skal der ikke indsætter nogen kode på siden som hentes ind i iframen?

Tak
Avatar billede oldschool Nybegynder
30. august 2006 - 15:00 #7
Ja... Men der er en iframe i iframen som henter en side fra en ander server. Men det burde vel ikke betyde noget da det indhold der er på egen server er "højere" end det fra den anden server, hvis du forstår hvad jeg mener?
Avatar billede dotcom1 Nybegynder
30. august 2006 - 15:02 #8
Ner, der skal ikke kode på den side, der hentes ind i iframen, men den skal komme fra samme server, for at det virker. Gør den det?
Avatar billede dotcom1 Nybegynder
30. august 2006 - 15:04 #9
Nej, det forstår jeg vist ikke helt. :)
Avatar billede oldschool Nybegynder
30. august 2006 - 15:05 #10
Ja den ligger i sammen folder endda... Min kode ser således ud: Ved ik om du kunne lokkes til at se om der skulle være noget galt...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="styles/tables.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<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=["main"]

//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.documentElement.scrollHeight) //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>

</head>

<body>



<table width="800" id="big" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="10" background="images/bg_fade.gif">&nbsp;</td>
    <td width="780" align="left" valign="top" bgcolor="#FFFFFF"><table width="780" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height="20" id="header">&nbsp;</td>
      </tr>
      <tr>
        <td height="150" valign="top" id="top">&nbsp;</td>
      </tr>
      <tr>
        <td height="20" id="topmenu">&nbsp;</td>
      </tr>
      <tr>
        <td valign="top" id="main_iframe"><iframe name="main" id="main" src="main.htm" marginwidht="0" marginheight="0" hspace="0" vspace="0" frameborder="0" width="780" scrolling="no" style="overflow:visible; width:100%; display:none"></iframe></td>
      </tr>
      <tr>
        <td height="50" id="maillist">&nbsp;</td>
      </tr>
      <tr>
        <td height="20" id="footer" style="font-family:Georgia, Times New Roman, Times, serif; font-size:10px; color:#FFFFFF; margin-right:10px;"><div align="right">Footer text </div></td>
      </tr>
    </table></td>
    <td width="10" background="images/bg_fade_right.gif">&nbsp;</td>
  </tr>
</table>


</body>
</html>
Avatar billede dotcom1 Nybegynder
30. august 2006 - 15:10 #11
Jeg er ikke kode-haj, desværre, så jeg er bange for at jeg ikke kan hjælpe dig. Du kan evt. lægge et link hertil over i dit nye spørgsmål, så kan det være, at der dukker en op. :)
Avatar billede oldschool Nybegynder
30. august 2006 - 15:13 #12
Ok det vil jeg gøre, men du skal have tak for hjælpen... Havde desværre lukket spørgsmålet inden du svarede, så hvis du vil have nogle points kan jeg oprette et spg?
Avatar billede dotcom1 Nybegynder
30. august 2006 - 15:16 #13
Nej, det behøves ikke. Ellers tak. :)
Avatar billede oldschool Nybegynder
30. august 2006 - 15:20 #14
Ok tak:O)
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