Fokus in Textarea
chilla
- javascript
Hy Leute,
ich habe ein script gezogen ( ja, ich gebs zu, ich hab es nicht selbst geschrieben [-: ) und ein bisschen geändert ( hoho ).
Also, das script bewirkt, das in einem bestimmtem Zeitabstand immer eine neuer Wert aus einem Array in ein Textfeld (textarea) geschrieben wird. Das funzt auch.
Nun ist das Problem, dass wenn der Text ueber die eigentliche groesse des Textfeldes hinausgeht, sieht man halt nur, dass der Inhalt des Textfeldes groesser wird ( durch die scrollbalken ) , aber man sieht nicht, was das script reinschreibt / wie das script reinschreibt.
Bsp.:
<html><head><title>Bsp.</title>
<script language="JavaScript">
var speed = 75
var pause = 1500
var timerID = null
var NewsRunning = false
var MessageArray = new Array()
MessageArray[0]="hallo-0 ### ArrayWert0\n";
MessageArray[1]="hallo-1 ### ArrayWert1\n";
MessageArray[2]="hallo-2 ### ArrayWert2\n";
MessageArray[3]="hallo-3 ### ArrayWert3\n";
MessageArray[4]="hallo-4 ### ArrayWert4\n";
MessageArray[5]="hallo-5 ### ArrayWert5\n";
MessageArray[6]="hallo-6 ### ArrayWert6\n";
MessageArray[7]="hallo-7 ### ArrayWert7\n";
MessageArray[8]="hallo-8 ### ArrayWert8\n";
var currentMessage = 0;
var offset = 0;
var textareavalue = '';
function showNews() {
if(currentMessage == 8) {
return false;
}
var text = MessageArray[currentMessage]
if (offset < text.length) {
if (text.charAt(offset) == " ")
offset++
var partialMessage = text.substring(0, offset + 1)
document.NewsForm.NewsField.value = textareavalue + partialMessage
offset++
document.NewsForm.NewsField.focus();
timerID = setTimeout("showNews()", speed)
NewsRunning = true
} else {
offset = 0
currentMessage++
if (currentMessage == MessageArray.length)
currentMessage = 0
timerID = setTimeout("showNews()", pause)
NewsRunning = true
textareavalue = document.NewsForm.NewsField.value;
}
}
// -->
</script>
</head>
<body onload="showNews()" bgcolor="#FFFFFF" topmargin="0" leftmargin="0" background="../../images/h_rechts.jpg">
<table>
<tr>
<td>
<form name="NewsForm">
<div align="center">
<center>
<p> <textarea rows="4" cols="60" name="NewsField"></textarea> </p>
</center>
</div>
</form>
</td>
</tr>
</table>
</body>
</html>
Es sollte halt so sein, dass der scrollbalken automatisch auf die "line" springt (bzw nach ganz unten), in die auch der Cursor springt.
Ich habe schon ueberlegt, ob man nach jedem CR einen event.keyCode emulieren koennte, aber kA wie das geht.
Abgeschreckt von dem gedanken hat mich vorallem, dass das mit dem keycode beim ie scheinbar garnicht funktioniert (jedenfalls als ich das Beispiel ausprobiert habe ( http://selfhtml.teamone.de/javascript/objekte/event.htm#key_code ) .
Naja,
probiert das Beispiel einmal aus, dann wisst ihr was ich meine! *hoff* - Ich habe diesen Effekt auf jeden Fall schoneinmal gesehen, bzw. die "richtige" version wie es funktionieren soll, weiss nur nicht mehr wo (wie das halt immer so ist).
Also, wenn jemand weiss was ich meine und mir einen Tip für einen einzufügenden Befehl oder gar einen link zu einem bestehendem - besserem Script geben könnte waere ich dieser Person sehr verbunden.
Vielen dank im voraus
chilla-