Mit document.write Leiste schreiben
brockerdocker
- javascript
0 JürgenB
Hi,
ich würde gerne eine gestrichelte Linie Zeichnen. Dazu lasse ich document.write eine Box "schreiben". Für den Abstand vom linken Bildschirmrand habe ich einfach eine Variable benutzt, die hochzählt. Das fuktioniert zwar wunderbar, aber wenn ich das ganze in einer Funktion schreibe, um diese zu bestimmten Ereignissen aufzurufen, dann geht bei mir mit dem Firefox gar nichts mehr.
Mit Opera funktioniert es bei mir. Auch der IE zeigt zumindest die erste Box.
Mich würde interessieren, wo da das Problem ist.
Mir ist auch aufgefallen, dass wenn ich besagte Funktion in bestimmten Zeitabständen aufrufen lasse, dass dann alle anderen Seiteninhalte verschwinden und nur noch die sich nach rechts ausbreitenden Boxen übrigbleiben.
Da ich die Funktion durch das drücken eines Stopknopfes stoppen wollte, geht das natürlich auch nicht mehr.
Hier ist mal der Link zu einer Beispieldatei: http://ecoffenbach.ec.funpic.de/prob.htm
Hier nochmal der Code der Datei:
<html>
<head>
<title></title>
</head>
<body>
<script language="JavaScript">
[code lang=javascript]
<!--
var Abstand = 0;
var aktiv;
function Vor() {
document.write("<p style='background-color:#00FF00; width:10px; height:10px; margin:0px; position:absolute; top:200px; left:" + Abstand + "px;'> </p>");
Abstand = Abstand + 15;
}
function Start() {
aktiv = window.setInterval("Vor()", 100);
}
function Stop() {
window.clearInterval(aktiv);
}
//-->
</script>
<p onClick="Start()" style="background-color:#DFDFDF; border:solid 2px black; cursor:pointer; width:100px;">Start</p>
<p onClick="Stop()" style="background-color:#DFDFDF; border:solid 2px black; cursor:pointer; width:100px;">Stop</p>
</body>
</html>
[/code]
OK, das wars, hoffe mir kann jemand helfen. Mir fällt einfach keine Lösung ein. Die verzögerung muss nicht sein, aber mich würde es halt freuen, wenn das ganze in einer Funkrion stehen würde, damit es nicht immer automatisch losläuft.
Vielen Dank schonmal,
brockerdocker
Hallo brockerdocker,
<script language="JavaScript">
hier fehlt type="text/javascript
document.write("<p style='background-color:#00FF00; width:10px; height:10px; margin:0px; position:absolute; top:200px; left:" + Abstand + "px;'> </p>");
document.write macht nur Sinn, wenn es während des Seitenaufbaus eingesetzt wird. Hinterher, wie bei dir, ersetzt es den Inhalt der Seite. Du wirst den Balken wohl mit DOM-Methoden erstellen müssen. Wobei du evtl. nur ein DIV erzeugen musst, dessen Breite du dann erhöhst. Schau dir mal die Kapitel zu createElement, appendChild, getElemenById etc. an. (http://de.selfhtml.org/javascript/objekte/document.htm, http://de.selfhtml.org/javascript/objekte/node.htm, http://de.selfhtml.org/javascript/objekte/style.htm)
Gruß, Jürgen
OK, das ist eine echte Hilfe,
Vielen Dank
brockerdocker