WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Kan man få en dynamisk iframe? (https://www.wn.se/forum/showthread.php?t=1913)

MrBig 2004-03-27 00:07

Kan man få en dynamisk iframe vad beträffar storlek?

Detta är kanske en fråga som låter konstig, men vad jag skulle vilja uppnå är att ha en iframe i mitten av sidan som laddas. Då informationen laddas in i den skall iframe anpassa sig till rutan. Alltså vill jag inte att rutan får en scrollbar, utan bara att rutan blir längre och förlänger sidan. Är det möjligt?

orreborre 2004-03-27 00:20

Japp, det ska gå bra, men jag har aldrig lyckats själv.
Det du gör är att kolla höjden på dokumentet i iframen och sätter iframen till denna höjd.

Tar reda på höjden gör du genom: document.body.scrollHeight
Jag har inget kodexempel här just nu, men sök lite så kanske du hittar något.
Jag återkommer om jag hittar lite kod.

Mvh

MrBig 2004-03-27 01:30

Citat:

Originally posted by orreborre@Mar 26 2004, 22:20
Det du gör är att kolla höjden på dokumentet i iframen och sätter iframen till denna höjd.

Ja, men du kan ju sätta höjden på iframen endast om du laddar om hela sidan eller hur. Det är det jag vill undvika. Tänkte mer på kanske att iframe uppför sig som en tabell.

Sätter du en tabell till 300 i höjd men ändå packar in mycket information kommer den automatiskt att bli längre.....

Trodde kanske att jag kan uppnå samma sak i detta fallet och kan bara ladda in ny information i iframen. Vill som sagt inte ladda om hela sidan hela tiden.

orreborre 2004-03-27 01:50

Det du kan göra är att ladda en javascriptfunktion med jämna mellanrum för att kontrollera höjden på dokumentet och därefter juster höjden på den. Ingen snygg lösning, men det är den enda jag kan komma på.

MrBig 2004-03-27 02:06

Citat:

Originally posted by orreborre@Mar 26 2004, 23:50
Det du kan göra är att ladda en javascriptfunktion med jämna mellanrum för att kontrollera höjden på dokumentet och därefter juster höjden på den. Ingen snygg lösning, men det är den enda jag kan komma på.
ok, tack för all hjlp. Kände på mig att det kanske inte går, men man frågar ju innan man ger upp. :)

digiArt 2004-03-27 10:57

Prova detta (alla filer ligger i samma mapp i detta exempel):

index.htm:
Kod:

<html><head>
<title>Iframeförändring</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body background="#ffffff" leftmargin="10" topmargin="10">
<div id="kldiv"><iframe src="test.htm" width="100%" height="100%"></iframe></div>
</body></html>

test.htm:
Kod:

<body bgcolor="#f1f1f1">
<script type="text/javascript" src="test.js"></script>
<a href="javascript:setSize('kldiv','200px','500px');">500x200 pixlar</a><br />
<a href="javascript:setSize('kldiv','400px','500px');">500x400 pixlar</a><br />
<a href="javascript:setSize('kldiv','600px','500px');">500x600 pixlar</a><br />
</body>

test.js:
Kod:

function el(element){
        return top.document.getElementById(element);
}

function setSize(id,h,w) {
        el(id).style.height=h;
        el(id).style.width=w;
}

setSize('kldiv','400px','500px');

Så har jag löst det, men tänk på att detta inte fungerar över domäner. Dvs, du kan inte lägga domän a i iframen som ligger på domän b.

Sen kan man självklart snygga till det vad gäller validering hos w3 samt användbarhet mm.

//Daniel

MrBig 2004-03-27 12:25

Skall testa det på en sida. Tack!

MrBig 2004-04-03 18:50

Har fått det att fungera på ett ganska tillfredställande sätt. Dock fungerar det inte i Opera. Någon som vill ha koden, så kan jag skicka den.


Alla tider är GMT +2. Klockan är nu 08:15.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson