Blackbloodies: 2-3 HTML / Frame Fragen

Hallo erstmal ,

ich habe eine Website erstellt und dazu ein paar Fragen. Vllt. könnte mir hier der ein oder andere "HTML / Frame" Experte weiterhelfen *hoff*

Zum besseren Verständnis erklär ichs euch erst einmal:

Ich betreibe eine Retro-Gamingseite [ http://www.pcgn.de ] in einem IFRAME (Index.html; width=100%, height=350%), welches wiederrum ein Frameset bestehend aus Top Bereich und einem dreiteiligen unterem Frameset bestehend aus einer linken und rechten Navigationsleiste sowie einem mitleren Inhaltsbereich lädt, so dass praktisch nicht ersichtlich ist, das es sich um Frames handelt (ausser z.B. wenn man in der Navigationsleiste auf Lösungen und dann den Buchstaben S klickt). (Ausserdem entstehen noch 4 variable Seitenränder -> 2 links und rechts vom oberen Top Bereich, und 2 links und rechts neben den Beiden Navigationsleisten)

Insgesamt ergeben sich hier 3 auf Dauer mich recht störende Eigenschaften:

1.) Wenn man auf einen Link zum Beispiel von einem Testbericht klickt, der z.B. dementsprechend lang und umfrangreich ist wo z.B. unten dann am Ende des Berichtes steht "weiter zu Seite 2" (Beispiel Reviews -> W -> Warcraft 3 [oder auch direkt auf der Startseite den Warcraft 3 Test auswählen]), dann wechselt er zu dem Dokument, bleibt aber auf der Seitenhöhe stehen, spricht, springt nicht zum Anfang des oberen Bereiches (auf Grund des eingegliederten Frames nehme ich mal an) hoch.
Meine Frage:
Kann man irgendwie das ein"htm~ellen" / eincoden, z.B. vllt. durch eine Verankerung (ID Tag oder sowas) (hab schon diverses probiert bisher, leider ohne Erfolg), so das er direkt wieder zum Oberen Bereich springt ??
Falls Unklarheiten sind, probiert es ruhig einmal kurz anhand des Warcraft 3 Beispiels aus. "Weiter zu Seite 2" Link, dann seht ihr wie ich das genau meine.

2.) Auf Grund dessen, dass ich am Anfang im IFRAME (index.html) den Wert Height=350% (welcher zur Vermeidung des SCOLLBALKENs im Inhalt (Mitte des 2. Framesets) dient), eingestellt hab bleibt die Seite zwar schön Scrollbalkenlos in der Mitte, jedoch leider immer mit großen unterem Leeren Bereich, was schon etwas doof ist (mal nett ausgedrückt), wenn es nur wenig Inhalt auf der Seite gibt. Als Vergleich könnt ihr hier z.B. einmal die Sektion "Downloads", langer leerer Bereich und die Sektion Lösungen "A", fast bis zum Ende ausgelagert, betrachten.
Meine Frage:
Gibt es eine Möglichkeit das sich der äußere Scrollbalken dynamisch der Länge des mittleren Inhaltes anpasst ?
Derzeit ist es so (siehe dazu Lösungen "S"), dass wenn eine Seite zu lang sein sollte, ein mittlerer Scrollbalken des Inhalts entsteht und sonst wie gesagt ein unterer leerer Bereich unterhalb des Inhalts und der Navigationsleisten 1&2 auf Grund der Height 350% Einstellung entsteht), Es ist quasi also immer die Gleiche Länge des Gesamt eingegliederten IFRAMES vorhanden.

3.) Zur Vermeidung, dass bei Suchmaschinenfunden, der mittlere Inhalt als einzelner Inhalt ohne Frameset dargestellt wird, hab ich ein Javascript eingefügt, welches überprüft ob der Inhalt ohne Frame geladen wurde. Sollte dieses der Fall sein, lädt er den Inhalt automatisch ins Frameset (könnt ihr derzeit überprüfen wenn ich z.B. bei Lösungen die Seiten A, B, C und D versucht im einzelnen Tab zu öffnen.)

Hier das Script der Inhaltsseiten (im Body):

<SCRIPT LANGUAGE="javascript">
var mychecker=parent.parent.framechecker;

if (mychecker == "frames")
{}
else
{
document.write("Page opened outside of its frame - if page is not reloaded please <a href='../../pcg-l-a.html'>click here</a>.");
parent.location.href = '../../pcg-l-a.html';

}
</SCRIPT>

und hier das Überprüfungscode der Framesetseite (im <Head>:

<SCRIPT LANGUAGE="javascript">
var framechecker="frames";
</SCRIPT>

Um dann genau diesen Inhalt in das Frameset zu laden, muss ich also für jede Inhaltsseite
eine weiter .html FRAMESET Datei anlegen (bei meinen sehr vielen HTML Seiten
also sehr viel Aufwand leider) (Beispiel für Lösungen -> A = Eine Framesetseite extra
erstellen, welche diesen Inhalt dann eingeliedert Bsp. f-loesungen-a.html), sollte
ich das nicht machen, so wird immer die erste Newsseite im Frameset geladen, so
das sich der Suchmaschinenbeitragsfinder immer durch die ganze Seite klicken muss,
was sehr umständlich sein kann.

Meine Frage Nr 3: Gibt es hier eine JavaScript-Code Erweiterung (entweder im FrameSet oder in der Inhaltsdatei oder in beiden von mir aus auch :P), welche ermöglicht, dass nicht für jede Inhaltsdatei
eine neue Framesetdatei erstellt werden muss, sondern es automatisch in die erste Frameset .html
Datei eingegliedert wird ??

Bei Lösungsvorschlägen (wenn es geht bitte ), so dass ich nicht die komplette Seiten umschreiben müsste, denn das Frameset und die eigentliche Grundstruktur soll bestehen bleiben, da sie bis auf die 2,3 kleine Ungereimtheiten, sonst eigentlich sehr gut funktioniert.

Besonders die 2. Frage liegt mir auf dem Herzen

Falls ihr weitere Informationen benötigt, gerne einmal nachfragen oder einfach die Beispiele kurz auf der Seite zum Verständnis aufrufen. Hoffe mal ich hab es möglichst gut und fehlerfrei erläutern können.

Großes Dankeschön schonmal im Vorraus

  1. @@Blackbloodies:

    nuqneH

    Vllt. könnte mir hier der ein oder andere "HTML / Frame" Experte weiterhelfen *hoff*

    Hier gibt es keine Frame-Experten, sondern nur Nicht-Frame-Experten. Frame-Experten sind vor Urzeiten ausgestorben. Frames zur Aufteilung einer Seite sind out.

    Ich betreibe eine Retro-Gamingseite

    Wegen „Retro“ muss man doch aber keine Frames verwenden.

    <SCRIPT LANGUAGE="javascript">

    Und language-Attribute auch nicht. Die waren schon immer unsinnig. In HTML5 einfach <script>.

    Auch wenn HTML nicht zwischen Groß- und Kleinschreibung unterscheidet, so ist es doch best practise, Element- und Attributbezeicher kleinzuschreiben.

    Die FAQ geben Hinweise, wie man Seiten mit gleichbleibenden Inhalten ohne Frames serverseitig zusammenbaut.

    Großes Dankeschön schonmal im Vorraus

    Gerrne.

    Qapla'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    1. Hallo,

      Gerrne.

      Qapla'

      schreibt sich Kapplla nicht auch mit Doppellkkonnssonnannttenn?

      Grußß
      Kallkk

  2. Hallo,

    in einem IFRAME (Index.html; width=100%, height=350%), welches wiederrum ein Frameset bestehend aus Top Bereich und einem dreiteiligen unterem Frameset bestehend aus einer linken und rechten Navigationsleiste sowie einem mitleren Inhaltsbereich lädt

    Warum so umständlich? Wenn du Frames überhaupt und speziell ein solches komplexes Setup verwendest, sind die beschriebenen Probleme vorprogrammiert. Ich rate dir, hier die Ursache des Problems zu beseitigen. Das ist letztlich am einfachsten.

    Kann man irgendwie das ein"htm~ellen" / eincoden, z.B. vllt. durch eine Verankerung …, so das er direkt wieder zum Oberen Bereich springt ??

    Das wäre höchstens mit JavaScript möglich, indem man im Frameset nach ganz oben scrollt.
    http://de.selfhtml.org/javascript/objekte/window.htm#scroll_to@title=window.scrollTo
    Siehe auch http://aktuell.de.selfhtml.org/artikel/javascript/fensterzugriff/

    2.) Auf Grund dessen, dass ich am Anfang im IFRAME (index.html) den Wert Height=350% (welcher zur Vermeidung des SCOLLBALKENs im Inhalt (Mitte des 2. Framesets) dient)

    Das ist ein Hack, von dem ich nicht einmal wusste, dass er möglich ist…

    Gibt es eine Möglichkeit das sich der äußere Scrollbalken dynamisch der Länge des mittleren Inhaltes anpasst ?

    Das ließe sich höchstens mit JavaScript programmieren, indem du beim Laden einer Seite in der Mittelspalte die Höhe des Dokuments ausliest und entsprechend die Frameset-Höhe setzt.

    Ich würde aber stark davon abraten. So etwas lässt sich nicht robust und flüssig ohne Gespringe umsetzen. Es ist einfacher, auf Frames zu verzichten, dann hast du solche Probleme nicht mehr.

    Um dann genau diesen Inhalt in das Frameset zu laden, muss ich also für jede Inhaltsseite
    eine weiter .html FRAMESET Datei anlegen

    Ein altbekanntes Problem von Frames. Die letztliche Lösung ist, auf Frames zu verzichten. Das tun die meisten Websites heutzutage auch.

    Gibt es hier eine JavaScript-Code Erweiterung, welche ermöglicht, dass nicht für jede Inhaltsdatei
    eine neue Framesetdatei erstellt werden muss

    Im Prinzip ja, das ist sowohl browser- als auch serverseitig möglich. SELFHTML-Artikel von 1998/2001:
    http://aktuell.de.selfhtml.org/artikel/javascript/dyn-frames/
    Das Datum zeigt schon, dass danach Frames möglichst vermieden wurden, anstatt solche Hacks weiter zu verfolgen.

    so dass ich nicht die komplette Seiten umschreiben müsste, denn das Frameset und die eigentliche Grundstruktur soll bestehen bleiben, da sie bis auf die 2,3 kleine Ungereimtheiten, sonst eigentlich sehr gut funktioniert.

    Die Lösung funktioniert nicht gut, sonst müsstest du nicht diese vielen Hacks und Workarounds einbauen. Frames sind unter dem Strich eine Tortur, und solange du Frames einsetzt, wirst du immer wieder in solche Probleme rennen. Die Grundstruktur kann bestehen bleiben, nur auf Frames sollte man aus eigenem Interesse und aus dem Interesse der User verzichten.

    Grüße
    Mathias