PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [JS] document.write - Problem?


M@tes
2005-01-24, 07:20:03
Habe hier mal ein Beispielscript:

<HTML>
<BODY>
<TABLE>
<SCRIPT>
<!--
function NewLine() {
document.write("<TR><TD>Hallo<\/TD><\/TR>");
}
//-->
</SCRIPT>
</TABLE>
<P>
<INPUT TYPE="BUTTON" VALUE="Neue Linie" onClick="NewLine()">
</BODY>
</HTML>

Wie bekomme ich das hin, das er die neue Zeile auf der gleichen Seite hinzufügt? Stattdessen scheint der eine ganz neue Seite zu generieren.
Ist das überhaupt möglich?

Aqualon
2005-01-24, 12:19:05
Zum dynamischen generieren von Tabellen kannst dir den Eintrag in SelfHTML durchlesen: http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#table

Aqua

M@tes
2005-01-24, 18:02:03
Cool, werds mir mal anschauen.
Hatte bisher nur folgendes als VOrlage:
http://de.selfhtml.org/javascript/objekte/document.htm#write
Ansich nutze ich kein JS, aber für mein Jetztiges Projekt ist es unumgänglich ;(

Sephiroth
2005-01-25, 00:04:14
Habe hier mal ein Beispielscript:

Wie bekomme ich das hin, das er die neue Zeile auf der gleichen Seite hinzufügt? Stattdessen scheint der eine ganz neue Seite zu generieren.
Ist das überhaupt möglich?
http://www.mozilla.org/docs/dom/domref/dom_doc_ref52.html
Writing to a document that has already loaded without calling document.open() will automatically perform a document.open() call. Once you have finished writing, it is recommended to call document.close(), to tell the browser to finish loading the page. The text you write is parsed into the document's structure model.

If the document.write() call is embedded directly in the HTML code, then it will not call document.open().
nu weißt du, wieso der nen neues fenster/document erstellt.

p.s.
http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/open_1.asp

M@tes
2005-01-25, 20:28:12
Danke.
Hab das mal schnell so probiert:
<HTML>
<BODY onLoad="NewSite()";>
<SCRIPT>
<!--
alert("blub");
function NewSite() {
document.writeln("<HTML>");
document.writeln("<BODY>");
document.writeln("<INPUT TYPE='BUTTON' VALUE='Neue Linie' onClick='NewLine()'>");
document.writeln("<P>");
document.writeln("<TABLE>");
document.writeln("<SCRIPT>");
document.writeln("function NewLine() {");
document.writeln("document.writeln('<TABLE><TR><TD>Hallo<\/TD><\/TR><\/TABLE>');");
document.writeln("}");
document.writeln("<\/SCRIPT>");
}
//-->
</SCRIPT>
</BODY>
</HTML>

Funktioniert auch soweit. Mir ist aber noch was gruseliges aufgefallen!
Wenn ich das Script im Opera laufen lasse, kann ich mir den Quellcode nciht angucken.
Schauch ich mir den in IE an, sehe ich nur die Ausgabe des document.writeln Befehls. Sprich:
alert("blub");

sehe ich im Quellcode selber nicht! Das würde bedeuten, man kann einiges an Code ausführen, ohne das das einer sehen würde.
Klar, man kann das rausfinden, aber wenn keiner verdacht schöpft, wird der sich da eh keine grossen Mühen geben etwas zu suchen, was nur ev sein könnte.