document.write in funktion
Hans
- javascript
Hi,
Wenn ich in meiner Funtkion document.write ("Hallo")
mache, dann schreibt der das in ein neues Fenster,
wie kann ich das unten auf der aktuellen Seite
ausgeben lassen?
also es wird eine neue Seite geöffnet und Hallo ausgegeben.
Code:
<html>
<head>
<style type="text/css">
<!--
body,input {
font-family: Tahoma;
font-size: 10pt;
text-align: left;
}
--></style>
<script language="javascript">
<!--
var eingabe,i;
function schleife()
{
eingabe = formular01.eingabe.value;
i = 0;
while (i < eingabe)
{
document.write ("Wiederholung<br>");
i++;
}
}
//-->
</script>
</head>
<body style="background-color: #FFEEDD;">
<form name="formular01">
<b>Wiederholungsanweisungen</b><br>
<br>
Anzahl der Wiederholungen:<br>
<br>
<input style="background-color= #DDDDFF; text-align: center;" size="4" name="eingabe" maxlength="4" type="text" value="">
<input style="background-color= #DDDDFF; text-align: center;" name="button01" type="button" value="Start" onclick="schleife()"><br>
</form>
</body>
</html>
Hallo Hans,
"document.write" funktioniert nur solange, wie das Dokument auch zum schreiben geöffnet ist, üblicherweise ist es das nur, bis die komplette Seite übertragen ist - in dem Moment, wo der Browser seinen </html>-Tag bekommen hat und die Seite darstellt, wird mit "document.write" ein neues Dokument erzeugt (schliesslich weiss "write" jetzt nicht mehr, an weclhe Stelle im Dokument es jetzt genau seine Ausgabe platzieren soll), was das von Dir beschriebene Phänomen hervorruft.
Abhilfe:
Du definierst einen Bereich, in der die Ausgabe hin soll (z.B. ein div, ein span o.ä.), und gibst diesem eine id.
Mit der DOM-Methoden [link=http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id@title=document.getElementById] kannst du auf diesen Bereich zugreifen und seinen Inhalt ändern - dies geschieht mit der Eigenschaft "innerHTML" (etwas altmodisch) oder modern mit DOM-Methoden wie z.B. [link=http://de.selfhtml.org/javascript/objekte/document.htm#create_text_node@title=createTextNode]
Bsp:
<script language="javascript">
<!--
var eingabe,i;
function schleife()
{
eingabe = formular01.eingabe.value;
i = 0;
while (i < eingabe)
{
document.getElementById("AusgabeBereich").innerHTML += "Wiederholung<br>";
i++;
}
}
//-->
</script>
</head>
<body style="background-color: #FFEEDD;">
<form name="formular01">
<b>Wiederholungsanweisungen</b><br>
<br>
Anzahl der Wiederholungen:<br>
<div id="AusgabeBereich"></div>
<br>
<input style="background-color= #DDDDFF; text-align: center;" size="4" name="eingabe" maxlength="4" type="text" value="">
<input style="background-color= #DDDDFF; text-align: center;" name="button01" type="button" value="Start" onclick="schleife()"><br>
</form>
</body>
</html>
Hope that helps.
Gruesse,
Joerg
Herrje,
Du definierst einen Bereich, in der die Ausgabe hin soll (z.B. ein div, ein span o.ä.), und gibst diesem eine id.
Grammatik: Note 5
Mit der DOM-Methoden [link=http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id@title=document.getElementById] kannst du auf diesen Bereich zugreifen und seinen Inhalt ändern - dies geschieht mit der Eigenschaft "innerHTML" (etwas altmodisch) oder modern mit DOM-Methoden wie z.B. [link=http://de.selfhtml.org/javascript/objekte/document.htm#create_text_node@title=createTextNode]
Verwendung von SELFHTML-Markup: Note 6....
Ich brauch Kaffee. :)
Jörg
Hallo Jörg,
Mit der DOM-Methoden document.getElementById kannst du auf diesen Bereich zugreifen und seinen Inhalt ändern - dies geschieht mit der Eigenschaft "innerHTML" (etwas altmodisch) oder modern mit DOM-Methoden wie z.B. createTextNode
Verwendung von SELFHTML-Markup: Note 6....
Ich brauch Kaffee. :)
Das ist immer eine gute Idee.
Freundliche Grüße
Vinzenz