Felix Riesterer: Inhalt laden ohne "Reload" - welche Möglichkeiten gibt es?

Beitrag lesen

Lieber malte,

alles, was in diesem Flash-Zeuchs abläuft, ist nur für die Leute nutz- und sichtbar, die das Ausführen solcher Inhalte unterstützen (sei es durch die Installation des erforderlichen Plug-ins, oder auch durch das Erlauben von "aktiven Inhalten").

Deine Seite soll in Suchmaschinen nicht gefunden werden (eine SuMa kann kein flash "sehen")?

Auch wenn Du per "verstecktem Iframe" und Javscript ein offensichtliches Neuladen der Seite umgehen willst, das funktioniert auch wieder nur, wenn der Benutzer Javascript zulässt, bzw. überhaupt zur Verfügung hat.

Mein Vorschlag:
1.) Erstelle eine Seite komplett ohne Javascript und Flash, die für alle benutzbar ist.
2.) Für Leute, die Javascript (erlaubt) haben, kannst Du diese Seite nun umgestalten und kannst nach dem Laden der Seite ein Script die Flash-Geschichten "nachträglich" in das Dokument "einpflanzen" lassen, wobei die design-technisch weniger spektakuläre Navigation (oder was sonst noch) ersetzt wird.
3.) Dein Flash-Film ist so konstruiert, dass man mittels Javascript (oder heißt das dann Actionscript?) bei einem "Seitenwechsel" eben diesem Flash-Film "sagt", welches Kapitel (oder wie man das in Flash nennt) er nun abspielen soll, da man ja nun auf einer entsprechenden Unterseite ist. Damit brauchst Du das Neu-Laden der Seite nicht mehr zu umgehen.

Deine Idee mit dem Versteckten Iframe ist keine schlechte, aber sie ist sehr umständlich zu realisieren.

Du könntest den kompletten Content in ein <div> setzen, dem Du eine ID (z.B. "seiteninhalt") gibst. Wenn nun jede Deiner Unterseiten solch ein <div> hat, dann kannst Du aus einem versteckten Iframe dessen <div> auslesen und diesen Inhalt (vielleicht per meinDiv.innerHTML) in Deine Seite übertragen.

Ich würde so vorgehen: Mit onload prüfst Du ja automatisch auf Javascript, denn wenn da kein Javascript ist, dann wird auch kein onload ausgeführt. Also onload rufst Du eine Funktion auf, die Deine Seite "initialisiert", indem sie die Flash-Design-Geschichte ersetzend auf die vorhandenen Elemente bastelt. Daraufhin erzeugst Du ein Iframe (da könnte "createElement" helfen), welches Du aber nicht in den Dokumentenbaum einbindest, weshalb es unsichtbar bleibt. Danach versiehst Du _jeden_ Link im "seiteninhalt" Deiner Seite mit einem onclick-Eventhandler.

Die Funktion dieses Eventhandlers ist nun sehr interessant. Sie soll das Linkziel ermitteln, um das entsprechende Dokument in das Iframe zu laden (deinIframe.src=deinLinkziel.href oder so). Sie muss nun überprüfen, ob das Iframe geladen hat, bevor sie auf dessen Inhalte zugreifen kann. Also musst sie auf das Iframe auch einen Eventhandler setzen (onload) und anschließend, wenn das Iframe fertig geladen hat, diesen wieder löschen und den "seiteninhalt" des Iframes in den "seiteninhalt" Deiner Seite kopieren. Während das Iframe unsichtbar geladen wird, solltes Du dem Benutzer eine kleine Animation zeigen, damit er versteht, dass sich da jetzt etwas tut, sonst muss er denken, dass Deine Seite nicht benutzbar ist.

Alles in allem finde ich es sehr umständlich. Vielleicht solltest Du von der "verstecktes Iframe"-Lösung Abstand nehmen?

Liebe Grüße aus Ellwangen,

Felix Riesterer.