Barna: document.write Problem

wenn ich in nem HTML Doku folgendes habe:

<FORM><INPUT type=button onClick="document.write('<BR><B>TEST</B><BR>');" value="Testknopf"></FORM>

wird im Netscape ein leeres Dokument mit dem inhalt TEST gezeigt, gibt es keine möglichket TEST einfach unter dem Dokument anzuzeigen, oder es sogar (das will ich eigentlich) den Text in einem anderen Frame anzeigen?

  1. hi,

    document.write wird beim Laden des Documentes ausgefuehrt, spaeter (per button) geht das afaik
    so nicht.

    Du kannst aber einen Layer beschreiben, den Du beliebig positionieren kannst. Dazu kannst Du im NC so eine Funktion verwenden:

    function schreiben()
    {
    var inhalt='test';
    document.layers["ebene0"].document.open();
    document.layers["ebene0"].document.write(inhalt);
    document.layers["ebene0"].document.close();
    }

    Im body musst Du einen Layer definieren:

    <DIV ID="ebene0" STYLE="position:absolute"></DIV>

    ...und die Funktion per Link aufrufen:

    <A HREF="#" onclick="schreiben();return false;">schreiben</A>

    Das Ganze kannst Du auch rahmenuebergreifend machen, dazu musst Du dann den layer mit parent.framename.document.layers...usw ansprechen.

    Im IE musst Du das anders schreiben:

    document.all["ebene0"].innerHTML='inhalt';

    Soweit alles klar? Wenns nicht klappt, nochmal posten.

    Gruss Joachim

    1. hi nochmal,

      kleiner Fehler:

      document.all["ebene0"].innerHTML='inhalt';

      ^^^    ^^^
      die copy and past Falle ;-) so ist es richtig:
      document.all["ebene0"].innerHTML=inhalt;

      Gruss Joachim

  2. hallo barna,

    hab mal folgendes geschriebselt:

    <!-- diese datei bildet ein frameset (oben u. unten ein frame -->
    <HTML>
    <HEAD>
    <title></title>
    <!-- statt rows ev. cols, statt * genauere angaben (nach deinem frameset) -->
    <frameset rows="*,*">
    <frame src="rand.html" name="zwei">
    <frame src="frau.html" name="sec">
    </frameset>
    </head>
    </HTML>

    <!-- rand.html mit deinem button -->

    <html>

    <head>
    <title></title>
    </head>
    <body>
    <center>
    <FORM>
    <!-- statt 1 anzahl des gewuenschten frame laut deinem frameset -->
    <INPUT type=button onClick="parent.frames[1].document.write('<BR><B>TEST</B><BR>');" value="Testknopf">
    </FORM>
    </center>
    </body>
    </html>

    <!-- frau.html leeres file - bzw. vor button gedrueckt wurde -->
    <!-- herein wird neuer code geschrieben -->

    <html>

    <head>
    <title></title>
    </head>
    <body>
    </body>
    </html>

    beachte, dass mit document.write der ganze vorige inhalt "geloescht" wird, also wenn nach dem druecken von Testknopf der vorige zustand noch bleiben sollte, musst du ihn wohl oder uebel auch neu einfuegen (mit document.write).
    wenn dir das "weiss" nicht passt, solltest du bei document.write auch den gesamten html-head und body ausgeben lassen!

    das ganze kannste dir unter
    http://keplerweb.oeh.uni-linz.ac.at/wurmi/test/frame.html
    auch "live" ansehen....

    hoffe, das war was du suchtest, ciao
    wurmi