Gernot Back: automatisch schreiben? (siehe Nachrichtentext)

Beitrag lesen

Hallo Nitram,

Dort erzeugst du nun entweder <http://de.selfhtml.org/javascript/objekte/document.htm#create_element@title=ein neues Element> und http://de.selfhtml.org/javascript/objekte/node.htm#append_child@title=hängst es in das Dokument ein, oder http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_tag_name@title=greifst auf ein bestehendes zu.

Hat wunderbar funktioniert! :)

  

> <script type="text/javascript">  
> hallo = new Array("h","a","l","l","o");  
> alange = hallo.length;  
>  aktiv = window.setInterval('schleife()',50);  
> var i = 0;  
> function schleife()  
> {  
>  mySpan = document.createElement("span");  
>  myText = document.createTextNode(hallo[i]);  
>  mySpan.appendChild(myText);  
>  mybereich = document.getElementById("bereich");  
>  mybereich.appendChild(mySpan);  
>   
>  i = i + 1;  
>  if(i==alange)window.clearInterval(aktiv);  
> }  
> </script>  

Da finde ich Mathias' zweiten Vorschlag, auf ein bestehendes Element zuzugreifen und dessen innerHTML zu verändern besser. Warum mehr Elemente erzeugen als nötig?

Werde das noch etwas verfeinern

Wie wär es so?

  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>Telex</title>  
<meta http-equiv="Content-Script-Type" content="text/javascript" />  
<style type="text/css">  
[code lang=css]  
.telex {  
   font:bold 1.5em "Courier New", Courier, monospace;  
}

</style>
<script type="text/javascript">

  
  
function telex () {  
   var myPs = document.getElementsByTagName('P');  
   if(myPs[myPs.length-1].className == 'telex') {  
      var myTelex = myPs[myPs.length-1];  
      myTelex.copy = myTelex.innerHTML;  
      myTelex.innerHTML = '';  
      myTelex.typer = function () {  
         with(myTelex)  
            if(copy) {  
               innerHTML += copy.slice(0, 1);  
               copy = copy.slice(1, copy.length);  
            } else window.clearInterval(typing);  
      }  
      myTelex.typing = window.setInterval(myTelex.typer, 40);  
   }  
}

</script>
</head>
<body>
   <p class="telex">Das ist ein Text, der nur bei aktiviertem Javascript
      wie auf einem guten alten Fernschreiber Buchstabe für Buchstabe
      erscheint und ansonsten von vornherein dasteht.</p>
   <script type="text/javascript">telex();</script>
   <p>Hier steht ein ganz anderer Text.</p>
   <p class="telex">Hier kommt nochmal ein anderes Geticker.</p>
   <script type="text/javascript">telex();</script>
</body>
</html>[/code]

Gruß Gernot