• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

DHTML /Layer

alekz

New member
hi,

ich suche eine lösung, wie ich über veschiedene menüpunkte immer wieder anderen
inhalt (bestehend in externen html-dateien) in ein und denselben layer hineinladen kann.

nehmen wir an, ich habe links ein menü und rechts einen layer. bei klick auf einen menüpunkt
soll eine externe html-seite in diesem layer aufgerufen werden. klicke ich auf den nächsten punkt,
erscheint an der gleichen stelle ein anderer inhalt aus einer weiteren externen html-datei usw.

eigentlich das gleiche prinzip wie bei zwei frames. nur möchte ich eine frame-lösung gerne umgehen,
da dies in meinem fall eine sehr unelegante lösung wäre.

natürlich könnte ich auch mit mehreren layern arbeiten, die nach bedarf ein- und ausgeblendet werden. die einzuladenden inhalte sind allerdings teilweise so umfangreich und die anzahl
der inhalte überhaupt dermaßen zahlreich, daß die kb-größe dieser dann einzigen html-seite untragbar wäre.

ich habe bei meiner suche nach einem script hierfür schon einige wenige ungefähre ansätze gefunden, die sich auf den aufruf von externen dateien in layern beziehen, jedoch ging es dabei immer nur um einen(!) aufruf pro layer.

das script sollte günstigerweise die möglichkeit offenhalten,
mehrere dieser "container-layer" definieren zu können, und bei click auf einen menuepunkt zusätzlich noch andere layer aufrufen zu können.

ist also echt eine schwierige sache - und das dann noch als crossbrowserlösung!
wo hab ich mich da nur hineingeritten :(

vielleicht weiß ja jemand von euch mehr, jeder noch so kleine hinweis wird benötigt.

achja, wer immer mir dabei helfen kann und will, berücksichtigt bitte meine relativ geringen javascriptkenntnisse.


ganz lieb DANKE

alekz
 
Wieso wollen alle JavaScripts?

Hi,

Willst das ganze ned lieber in PHP schreiben? Is besser als JavaScript, da es bei allen Browsern (sogar NN schafft mal was) funktioniert. Speicher einfach folgendes mit Endung PHP ab:

<?
if (!$section) {
$section = "1";
}
if ($section=="1")
{
?>

INHALT VON SECTION 1

<?
}
elseif ($section=="2")
{
?>

INHALT VON SECTION 2

<?
}
?>

Kannst du natürlich noch fortsetzen. Den Inhalt kannst du ganz normal in HTML schreiben. Wenn du in einer Section nur den Inhalt einer anderen File anzeigen willst, dann füg folgendes in diese Section ein:

<? include("NAMEDERDATEI.ENDUNG"); ?>


Wennst die PHP-File jetzt aufrufst, wir automatisch Section 1 angezeigt. Zu den anderen Sections kommst du mit ?section=NAMEDERSECTION(In dem Beispiel Zahlen) Kannst du in Adressleiste oder bei nem Link einfügen. Musst nur DATEINAME.php davor stellen, solang der Link nicht in der PHP-File steht.

cya
ShadowsMaster
 
hast recht, gar keine frage

hi shadowsmaster!

erst mal danke für die schnelle und konkrete reaktion.
hast recht - keine frage. an php hab ich auch schon gedacht.
ist die sauberste lösung. ich kanns nur (noch) nicht.

aber mit deinen zeilen werd ichs heut einfach mal versuchen.
mal sehen, wie weit ich komme - in der größten not werd
ich dich noch mal fragen.
wenns recht ist :)

cu
alekz
 
DHTML-Lösung

Hallo!

Falls dein Server kein PHP unterstützt: Es geht auch in DHTML/JS und ist letztlich gar nicht so schwierig!
Beim NC 4 kann man einem Layer oder div-Bereich über document.layers[id].src=dateiname direkt eine Datei zuweisen. Bei IE 4/5.x, NC 6 und Opera 5 gibt es dem IFRAME, den man z.B. mit iframename.location.href=dateiname eine Datei zuweisen kann. Allerdings kann man diesen IFRAME nur beim IE 5.5 mit einen anderen Layer überdecken. Solte dies notwendig sein, kann man einen unsichtbaren IFRAME als Buffer verwenden und den Inhalt mit innerHTML auf den div-Bereich übertragen.

Gruß Henry
 
dhtml/js lösung

@ henry und shadowsmaster !

nach genau dieser lösung, abgesehen von php, suchte ich.
habe heute auch bei meinem server nachgesehen - der unterstütz tatsächlich kein php, was mich nun zwingt vorerst (! wollte sowieso demnächst wechseln) die layer/js lösung zu verwenden.
bevor ich mich da hineinfummle und dann doch hängen bleibe, hätte ich noch eine weitere problemstellung, vielleicht weißt du ja auch darüber bescheid:

wenn ich dann also die externe html-datei innerhalb dieses layers geladen habe, und auf einen beliebigen link innerhalb dieser datei klicke, wird dann die angeforderte datei auch innerhalb dieses layers dargestellt?
das wäre klasse, ansonsten kann ichs vergessen.

und, etwas allgemeiner: kann man aufrufe/aktionen dann auch übergreifend ausführen? sprich: aus dem layer heraus elemente der htmlseite ,die den layer beinhaltet, ansprechen?

ich weiß, ein bissel viel, aber...


was mir auch enorm weiterhelfen würde, ist, wenn du vielleicht schon so ein script (oder etwas ähnliches)parat hättest, hätte auch kein problem damit, dich als autor einzutragen. ;)

auf alle fälle danke ich dir schon mal

cu
alekz
 
@alekz

1. Ja, allerdings nicht über Target sondern mit einem kurzem JS-Script.

2. Ohne Probleme.

Ich kann dir sicher ein kurzes Script schicken, das das Vorgehen beschreibt. Leider aber erst gegen Abend, da ich zur Zeit auf Arbeit rumsitze und das Script auf meinem häuslichen Rechner habe. Noch eine kurze Frage: Soll der Layer durch eine andere (weitere) Ebene (z.B. Popup-Menü) überdeckt werden?

Gruß Henry
 
cool :)

hi henry!

stimmt mich ja alles extrem optimistisch

ein zweiter layer, der den anderen überdeckt ist eigentlich nicht nötig, dafür aber die möglichkeit zur integration von weiteren layern irgendwo, die stinknormale layer sein sollen.

...heute abend ist sehr ok.

DANKE!

cu
alekz
 
total genial!

hi henry!

weiß garnicht, was ich sagen soll, bisher funktioniert alles ohne probleme, noch auf keine schwierigkeiten gestoßen.

hast was gut - kann dir mit grafik/design dienen, da kenn ich mich aus

danke auch für dein angebot zwecks weiterer fragen, komme darauf zurück.

wenn mein projekt fertig ist, sende ich dir die url.

thanksthanksthanks!

alekz
 
@ shadowsmaster

hi shadowsmaster!

falls du das posting weiterverfolgt hast, wirst du vielleicht gelesen haben, daß mein server kein php unterstützt, werde also erst mal mit dem script von henry arbeiten, und sobald ich den server wechsel wahrscheinlich auf php umstellen.

danke bis dahin

cu
alekz
 
Hi,

Fallst dann auf PHP umsteigst helf ich dir gern. Ach und kannst mir das mit den Layers bitte auch mal schicken (kenn mich da ned aus :D).

cya
ShadowsMaster
 
nur zur Vollständigkeit

Es handelt sich hier zumindest beim IE 4/5.x und NC 6 um IFRAME's und nicht um Layer im eigentlichen Sinne. Diese Lösung hat den Nachteil, dass IFRAME's leider nur im IE 5.5 den z-Index unterstützen (Überlagerung durch andere Layer). Es gibt aber auch eine allgemeinere Lösung, die tatsächlich eine Datei in den div-Bereich liest. Hierzu muß man zuerst beim IE 4/5.x und NC 6 die Datei in einen nicht sichtbaren IFRAME lesen und den Inhalt mit innerHTML auf den div-Bereich übertragen. Beim NC 4 geht es, wie bereits beschrieben, direkt. Falls es jemand interessiert, kann ich ein Beispiel mailen.

Gruß Henry
 
Zurück
Oben