Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>iframe mit variabler Höhe?

iframe mit variabler Höhe?

Thunderson
Thunderson02.06.0816:29
Hi zusammen,

ich bastle gerade an einer neuen Website und möchte keine Frames mehr verwenden - finde das einfach nicht mehr Zeitgemäß und möchte dementsprechend zeitgemäße Code verwenden.

Die einzelnen Bereiche der Seite will ich alle in einen iframe laden. Nur sind diese Inhalte alle unterschiedlich groß und somit zerschießen mir manchmal Scrollbalken oder leere Bereiche immer wieder das Layout bzw. Design.

Wie kann ich de Höhe des iframe variabel an den Inhalt anpassen? Oder gibt es eine bessere Möglichkeit anstatt eines iframe?

Vielen Dank schon mal!
Thunderson
„Treibt der Krieg den Menschen zum Äußersten oder treibt das Äußerste den Menschen zum Krieg?“
0

Kommentare

Stranger02.06.0817:07
ich würde sagen...
div mit php zb. über include die jeweilige datei ins div laden, das heißt du verwendest das div als container
0
Thunderson
Thunderson02.06.0817:12
Mit Div hatte ich schon mal zu tun. Nur wie sieht das Codemäßig aus?

Das ist meine erste Seite seit Zig-Jahren und damals kam ich mit HTML und ein bisschen Java aus
„Treibt der Krieg den Menschen zum Äußersten oder treibt das Äußerste den Menschen zum Krieg?“
0
Stranger02.06.0817:43
naja, wenn du kein php kannst bringts dir auch nicht viel

aber so müsste es aussehen...

<?php 

if(isset($site)) {
           $site = $_GET['site'];
         }

        else {
            $site = "home";
            }
    
switch($_GET['site']){

    case "home": $content = "home.php"; break;
    case "news": $content = "news.php"; break;
        case "guestbook": $content = "gb.php"; break;
    case "links": $content = "links.php"; break;
    case "contact": $content = "contact.php"; break;
    case "impressum": $content = "impressum.php"; break;
    default: $content = "home.php"; break;        
            
                     }
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<title>Test</title>
<link href="main.css" rel="stylesheet" type="text/css" />
</head>
<body>

  <div id="container_div">
        <?php include($content) ?>
  </div> 

</body>
</html>

und die css file dann halt

#container_div {height:auto; width:400px;}
0
mee
mee02.06.0818:23
kannst es aber auch gleich im iframe machen:

<iframe src="http://URL" width="100" height="250" bgcolor="#ffffff" border="0" cellspacing="0" cellpadding="0"></iframe>
0
Thunderson
Thunderson02.06.0818:30
mee:
Und wo ist hier die variable Höhe? So ähnlich sieht der iframe jetzt schon aus.

Stranger:
Hey, ich hab' nicht gesagt, dass ich PHP nicht kann - nur dass ich mich erst sehr wenig damit beschäftigt habe MAl sehen ob ich mit deinem Script hier klar komme.
„Treibt der Krieg den Menschen zum Äußersten oder treibt das Äußerste den Menschen zum Krieg?“
0
Stranger02.06.0818:36
das frag ich mich auch, wo is da die variable höhe? du gibst doch einen wert von 250 vor

also bei dem script musste du natürlich noch dein design drumherum basteln

wenn du zb www.meineseite.de/index.php?site=home aufrufst wird halt der inhalt von home.php includiert und in die seite eingebunden
0
Thunderson
Thunderson02.06.0818:48
Stranger
Das funktioniert schon so weit so wie ich will. Aber wenn ich den Link so aufrufe dann wird immer die ganze Seite neu geladen oder?
„Treibt der Krieg den Menschen zum Äußersten oder treibt das Äußerste den Menschen zum Krieg?“
0
Thunderson
Thunderson02.06.0819:04
Das Ziel sollte ja sein, dass sich nur ein Teil der Seite neu aufbaut. Der ganze Rest um den iframe, Container oder was auch immer sollte bleiben und Menü, Flash-Bildergallerie und Hintergrundsound bilden.
„Treibt der Krieg den Menschen zum Äußersten oder treibt das Äußerste den Menschen zum Krieg?“
0
Stranger02.06.0819:06
ähm ja, nein, vielleicht ^^ eigentlich rufst du ja nur einen neuen include auf der halt an php raus geht, könnte man ja als neuladen betrachten, ansonsten lädst du ja nur den content und das die ganze seite "neu lädt", aber das war drumherum liegt is ja eh schon im cache, so dass es nich auffällt...

ansonsten würde mir nur AJAX einfallen...

guck mal hier
0
Thunderson
Thunderson02.06.0819:14
Also deine Lösungsansätze sind echt gut!

Nur denke ich das ich, wenn ich mich auch noch mit AJAX, beschäftigen muss dafür (was auf die Schnelle nicht so einfach sein wird), alle zeitlichen Rahmen sprengen werde...

Bin gerade am Überlegen ob man iframe und Container nicht irgendwie verbinden könnte?
„Treibt der Krieg den Menschen zum Äußersten oder treibt das Äußerste den Menschen zum Krieg?“
0
Stranger02.06.0819:39
mhh, dir bleibt eigentlich nur AJAX für sowas, ansonsten musst du mit dem neuladen leben

oder du versuchst es mal bei dem iframe die height auf auto zu setzen und probierst mal welcher browser es mitmacht, weil soweit ich weiß ist "auto" kein zugelassener wert für die height von einem iframe
0
Stranger02.06.0819:39
achja... oder machst halt nicht nur die gallery in flash, sondern gleich die ganze seite
0
Thunderson
Thunderson02.06.0819:44
Stranger:
Dachte ich auch schon - nur dann wird es ne lange Nacht für dich werden Jetzt zerbreche ich mir gerade meinen Kopf über Frame, iframe, Div Container usw...
Auto ist kein gültiger Wert, dass habe ich schon probiert - hat gar kein Browser mitgemacht.
„Treibt der Krieg den Menschen zum Äußersten oder treibt das Äußerste den Menschen zum Krieg?“
0
Mr. Krabs
Mr. Krabs02.06.0819:53
Thunderson:
Ich würde die Finger von iFrame lassen. Divs + PHP sind schon eine schöne Kombo dafür.

Wenn du aber auch JS in deiner Seite benutzt, dann ist AJAX auch eine schöne Lösung. Um wirklich problemlos mit den Requests zu arbeiten, schau dir mal Mootools an, da sind sehr nette Sachen bei. Eine Demo für Ajax haben die natürlich auch (inkl. Sourcecode usw.):
„Deux Strudel!“
0
Stranger02.06.0819:58
stimmt, an die frameworks hab ich gar nicht mehr gedacht *schäm*
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.