• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Übersetzung

Status
Für weitere Antworten geschlossen.

Ay Chiquita

Neues Mitglied
Hi Jungs

In letzter Zeit wurde mir sehr oft gesagt, dass iframes keine ideale Lösung seien, ich solle lieber mit div's arbeiten. Soweit, so gut, doch selbst nach durchsuchen von komplett selfhtm.org weiß ich nicht, was ich machen soll. Kann mir jemand den Code so übersetzen, dass ich statt einem iframe ein div-Tag habe?

Code:
<iframe src="xxx.htm" name="xxx" width="xxx" height="xxx" align="left" scrolling="no" frameborder="0"></iframe>

Vielen Dank!
 
hmm .. okay ..
1. Doch ich muss doch irgendwo wie bei einem iframe eine Quelle angeben!
2. Heißt es overflow:visible?

Ist es nicht möglich, soetwas 1:1 zu "übersetzen"?
 
Zuletzt bearbeitet:
hmm :/ was mach ich nun .. ich muss doch irgendwie die quelle angeben ..
ich brauche quasi ein div-fenster, in dem eine html-datei angezeigt wird und die sich - wie in einem farme - ändern kann. die höhe sollte der der eingebetteten html-datei entsprechen, die breite ist fest. geht sowas -und wenn ja - wie sähe solch ein quelltext aus?
 
selfHTML: div

Ich zitiere:
selfHTML schrieb:
Sie können mehrere Elemente wie Text, Grafiken, Tabellen usw., in einen gemeinsamen Bereich einschließen. Dieses allgemeine Element bewirkt nichts weiter als dass es in einer neuen Zeile des Fließtextes beginnt. Ansonsten hat es keine Eigenschaften. Es ist dazu gedacht, um mit Hilfe von CSS formatiert zu werden.

Also:
divs können nicht die funktion eines frames ersetzten. Willst du frames loswerden brauchst du php. Über php kannst du inhalte aus verschiedenen dateien in einer zusammenführen. Siehe dazu auch das stichwort "includieren" in unsere PHP-FAQ.
 
Um einen Inline-Frame mit der "Quellen"-Eigenschaft zu ersetzen, brauchst du ein Div (feste Breite, Höhe und overflow:auto/overflow:scroll und weitere Style-Eigenschaften) und PHPLight.

PHPLight besteht bekanntlich nur aus der PHP-Funktion include().

Das ganze könnte dann so aussehen:
HTML:
<div style="width:500px; height:500px; overflow:scroll; border:1px solid #FF0000;">
PHP:
<?php
    include '[QUELLE].[ENDUNG]';
?>
HTML:
</div>
Du musst dabei allerdings beachten, dass du die Datei mit dem gerade genannten Inhalt in eine PHP-Datei (.php) umändern musst, außerdem muss dein Webspace natürlich PHP unterstützen.
 
Vielen Dank,
- Prophet für dein Engagement und die gute Erklärung! Und ..
- Verhueterli, für die funktionierende "Übersetzung" ;)

Ihr seid klasse!

Edit: Okay, nun stellt sich bereits das nächste Problem.
Ich habe nun mehrere Frames durch div's ersetzt. Soch wie gebe ich nun bei meinen Links das "target" an, sodass sich in den div's der Inhalt ändert? Durch <div name="bsp" id="bsp"></div> und <a href=".." target="bsp"></a> geht es nicht ..
Wer weiß weiter?
 
Zuletzt bearbeitet:
Dafür musst du wieder mit php arbeiten. du musst die gewünschte seite per Url übermitteln und dann per php die übermittelte Seite anzeigen. Der Grundstein hierfür sieht in etwa so aus.
Die Links in der Navigation:
HTML:
<a href="index.php?site=home.php">HOME</a>
<a href="index.php?site=news.php">NEWS</a>
In der Div, in der die Inhalte angezeigt werden sollen, würde der PHP CODE so aussehen:
PHP:
<div style="width:600px; height:400px; overflow:auto;">
<?php
  $site = $_REQUEST['site'];
  include ($site);
?>
</div>
Wie gesagt. das ist nur der Grundstein.
Grundstein deshalb, weil diese Funktion sehr unsicher ist. Du solltest als mindestens eine Abfrage einbauen, die prüft, ob die Seite die jemand anzeigen will, auch erlaubt ist.

Zudem könnte man alle Dateien für das include in einen anderen ordner tun. ein fertiges Script kann dann so aussehen:
PHP:
<?php
function site()
{
  if (empty($_REQUEST['site']))
  {
    $site="Home.php";
  }
  else
  {
     $erlaubt = array("Home.php","News.php");
     if (!in_array($site, $erlaubt))
     {
       $site="404.php";
     }
  }
  return("sites/".$site);
}
?>



<div class="Inhalt_div">
     <?php include(site()); ?>
</div>
Ein Link hierfür würde dann so aussehen:
HTML:
<a href="index.php?site=home.php">HOME</a>
SICHER: Anhand if (!in_array()) wird überprüft ob die Seite erlaubt ist. Sollte sie nicht erlaubt sein, wird automatisch 404.php aufgerufen, auf der eine Fehlermeldung stehen könnte
PRAKTISCH Die Dateien die Includiert werden liegen im Ordner "sites" (leicht editierbar bei "return()")
 
Zuletzt bearbeitet:
Hi Frank,

erst einmal vielen herzlichen Dank für deine umfangreiche Antwort, es hat mir sehr geholfen! Alllerdings habe ich noch ein letztes Problem: (und diesmal bin ich überzeugt, dass es wirklich das letzte ist): Sofern ich deinen "unsicheren" Code übernehme und ich auf htm-Dateien verlinke, ändert er sie im vorgegeben div (genau wie ich es haben wollte), doch ist die "Startseite" im div eine Warning-Meldung. Wenn ich deine "sichere" Variante mit einer Home.php-Datei benutze, ist die Startseite zwar da (Home.php), doch die verlinkten Seiten werden nicht angezeigt. Was mache ich verkehrt?
 
Bei meiner "sicheren" Variante musst du alle dateien die du includest in den ordner "sites" tun. während die datei die diesen Code enthält im Elternverzeichnis von sites ligen muss.

  1. Hast du deine Home.php im Ordner "sites" und die Codedate (index.php) in deren Elternverzeichnis?
  2. Hast du im Array die richtige dateiendung benutzt?
    • Home.php
    • Home.htm
  3. hast du bei deinen Links (<a href="index.php?site=Home.php">Home</a> auf groß und kleinschreibung hinter ?site= geachtet?
 
Hallo Frank,

Ja, darauf habe ich sehr genau geachtet. Dennoch funktioniert die Seite (noch) nicht fehlerfrei. Ich denke, dass es wesentlich einfacher ist, wenn ich dir die Seite (so wie du sie mir beschrieben hast) einfach mal schicke:

HIER

Ich weiß nicht mehr, wo der Fehler stecken könnte ..
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben