Knud Schröder: "Layer"-Inhalte dynamisch ändern

Hallo Leute!

Mittlerweile ist das Forum hier tägliche Pflicht, denn ich finde es schon allein Wahnsinn,
wie schnell hier geantwortet wird.
Mein Kompliment an diejenigen, die ich hier immer wieder sehe, wie sie auch die eine
oder andere "dumme" Frage mit Engelsgeduld beantworten.

Vor ein paar Tagen kam mal die Sache zur Sprache, daß sich zu viele hier einfach gar keine
Gedanken machen und die schnelle Hilfe haben wollen, ohne selber nachdenken zu müssen.
Bloß nach dem Motto, wie geht das und möglichst so, daß ich es direkt mit Copy&Paste
zum Laufen bekomme.

Die Sache hat mich ziemlich nachdenklich gemacht, denn ich habe auch an mir festgestellt,
daß ich es auch als wunderbar leicht empfand, hier das Problem zu posten ohne es erst
einmal selber zu probieren.

Jetzt habe ich fast ein schlechtes Gewissen, wenn ich jetzt wieder eine Frage habe und sie
hier stellen möchte.
Zu meiner "kleinen" Verteidigung möchte vorbringen, daß ich mich zuvor doch
im Selfhtml umgesehen habe.
(Aber auch andere Online-Stellen wie z.B. www.webreference.com)

Naja, hier trotzdem meine Frage:

Ich habe mit <div> einen "Layer" kreiert, der mit absoluter Position auf dem Screen klebt.
Jetzt möchte ich per Click den Inhalt austauschen.
Und das, nach Möglichkeit, aus einer Datei raus.
(Ist nicht schlimm, wenn's nicht geht, ansonsten über eine Variablendeklaration vorher)
Kann ich dafür das innerHtml-Style benutzen?
Wie geht das Ganze dann mit dem NC (der das ja nicht so kann)?

Ich hab mir bis jetzt folgendes gedacht:

für den IE:
test='document.all.testdiv.innerText=text[num];';
für den NN:
test="document.testdiv.document.write('<p align="center" '+text[num]+'</p>')";

Geht das so?

Vielen Dank im Voraus
Knud

  1. Hallo!

    Jetzt habe ich fast ein schlechtes Gewissen, wenn ich jetzt wieder eine Frage habe und sie hier stellen möchte.

    Nicht nötig... :)

    Zu meiner "kleinen" Verteidigung möchte vorbringen, daß ich mich zuvor doch im Selfhtml umgesehen habe.
    (Aber auch andere Online-Stellen wie z.B. www.webreference.com)

    In dem Fall schon gar nicht... ;)

    Naja, hier trotzdem meine Frage:

    Ich habe mit <div> einen "Layer" kreiert, der mit absoluter Position auf dem Screen klebt.
    Jetzt möchte ich per Click den Inhalt austauschen.
    Und das, nach Möglichkeit, aus einer Datei raus.
    (Ist nicht schlimm, wenn's nicht geht, ansonsten über eine Variablendeklaration vorher)
    Kann ich dafür das innerHtml-Style benutzen?

    Aus einer Datei 'raus soweit ich weiß nicht, aber prinzipiell schon... Vielleicht geht auch was mit <iframe ...>? (Hat da schon jemand hier Erfahrungen?)

    Wie geht das Ganze dann mit dem NC (der das ja nicht so kann)?

    Gar nicht... :-(
    Du könntest höchstens mehrere Layer erstellen, und diese dann entsprechend ein- und ausblenden.

    Ich hab mir bis jetzt folgendes gedacht:

    für den IE:

    »»  test='document.all.testdiv.innerText=text[num];';

    für den NN:

    »»  test="document.testdiv.document.write('<p align="center" '+text[num]+'</p>')";

    Geht das so?

    Jein...
    Bei deiner NN-Lösung würde der Text ständig *ergänzt*, aber nicht ersetzt werden!

    Wie gesagt: Am besten erstellst du einfach mehrere Layer, die du dann "auswechselst"... (siehe <../../tfbe.htm#a2> und <../../tfcc.htm>)

    Ciao,
    Mirko

  2. Naja, hier trotzdem meine Frage:

    Ich habe mit <div> einen "Layer" kreiert, der mit absoluter Position auf dem Screen klebt.
    Jetzt möchte ich per Click den Inhalt austauschen.
    Und das, nach Möglichkeit, aus einer Datei raus.
    (Ist nicht schlimm, wenn's nicht geht, ansonsten über eine Variablendeklaration vorher)
    Kann ich dafür das innerHtml-Style benutzen?
    Wie geht das Ganze dann mit dem NC (der das ja nicht so kann)?

    Ich hab mir bis jetzt folgendes gedacht:

    für den IE:

    »»  test='document.all.testdiv.innerText=text[num];';

    für den NN:

    »»  test="document.testdiv.document.write('<p align="center" '+text[num]+'</p>')";

    Geht das so?

    Zumindest für den Netsi würde ich was anderes vorschlagen: Da document.write immer nur beim Einlesen der Seite Beachtung findet und die komplette Seite somit bei jeder Änderung des "Layers" neu geladen werden müßte, würde ich von vornherein alle in Frage kommenden Inhalte in jeweils einem eigenen Layer oder DIV-Abschnitt definieren, die jedoch alle die gleiche absolute Position besitzen, sich also überlagern, wobei jedoch nur ein Layer jeweils sichtbar ist.
    Dann den Style visibility über JavaScript dynamisch zwischen hidden und visible (betr. DIV-Lösung) ändern.
    Hat evtl. den unerwünschten Effekt, daß alle in Frage kommenden Inhalte unabhängig von ihrem tatsächlichen Aufruf zunächst vorgeladen werden. Bei vielen möglichen Inhalten sollten die einzelnen aufgrund der mehrfachen hidden-Setzung vielleicht in ein Array aufgenommen werden.
    Das ganze findet sich in der Form (garniert mit Frames und Ladekontrolle) auf einer Preview-Seite meiner zweiten Homepage (nur zu Testzwecken) unter
    http://www.freiepresse.de/home/ragro/aindex.htm wieder - dort auf Seite2, unter "Folgende Inhalte..." bei onMouseOver über Verweisen im linken Frame.
    Du kannst ja mal den Quelltext studieren. Funktioniert übrigens genauso mit dem IE.
    Tschau Ralph.

  3. Hi

    Sorry, dass ich nicht genau antworte, aber das Thema hatte ich letzte Woche genau zweimal beantwortet. Einfach nochmal ein wenig zurueckblaettern und Du weisst wie das mit der externen Datei einlesen geht.

    Wenn du es nicht au seiner Datei haben willst, dann mit

    MSIE

    document.all["layerID"].innerHTML

    NS

    document.layers.["layerID"].document.open();
    document.layers.["layerID"].document.write( ... );
    document.layers.["layerID"].document.close();

    Viele Gruesse, Thomas Hieck

    1. Sorry, dass ich nicht genau antworte, aber das Thema hatte ich letzte Woche genau zweimal beantwortet. Einfach nochmal ein wenig zurueckblaettern und Du weisst wie das mit der externen Datei einlesen geht.

      Hier der Link dazu:

      <../../sfarchiv/1999_2/t02897.htm>

    2. Sorry, dass ich nicht genau antworte, aber das Thema hatte ich letzte Woche genau zweimal beantwortet. Einfach nochmal ein wenig zurueckblaettern und Du weisst wie das mit der externen Datei einlesen geht.

      Hier der Link dazu:

      <../../sfarchiv/1999_2/t02897.htm>