kann mir jemand diesen quellcode erklären

ZeroEnna

Erfahrenes Mitglied
Kann mir jemand diesen Quellcode erklären?

Hi,

Ich weiss es ist ein bisschen viel verlangt, aber kann mir mal jemand diesen Quellcode im Detail erklären (sprich, Befehl für Befehl).
Der Code selbst ist von selfHTML, aber die dortige Beschreibung hat mir irgendwie nicht weitergeholfen.

Ich will den Code für mein Gästebuch verwenden, aber ich verwende ungern Codes die ich nicht im Detail verstehe und da ich ein völliger Neuling bin in Sache JavaScript, wollte ich eben nun fragen ob mir einer von euch den Code erklären kann (natürlich nur den JavaScript Teil):-(

HTML:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">
  <html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  <title>Einf&uuml;gen von Inhalten in eine Textarea</title>
  <script type="text/javascript">
  <!--
  function insert(aTag, eTag) {
    var input = document.forms['formular'].elements['eingabe'];
    input.focus();
    /* für Internet Explorer */
    if(typeof document.selection != 'undefined') {
      /* Einfügen des Formatierungscodes */
      var range = document.selection.createRange();
      var insText = range.text;
      range.text = aTag + insText + eTag;
      /* Anpassen der Cursorposition */
      range = document.selection.createRange();
      if (insText.length == 0) {
        range.move('character', -eTag.length);
      } else {
        range.moveStart('character', aTag.length + insText.length + eTag.length);      
      }
      range.select();
    }
    /* für neuere auf Gecko basierende Browser */
    else if(typeof input.selectionStart != 'undefined')
    {
      /* Einfügen des Formatierungscodes */
      var start = input.selectionStart;
      var end = input.selectionEnd;
      var insText = input.value.substring(start, end);
      input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
      /* Anpassen der Cursorposition */
      var pos;
      if (insText.length == 0) {
        pos = start + aTag.length;
      } else {
        pos = start + aTag.length + insText.length + eTag.length;
      }
      input.selectionStart = pos;
      input.selectionEnd = pos;
    }
    /* für die übrigen Browser */
    else
    {
      /* Abfrage der Einfügeposition */
      var pos;
      var re = new RegExp('^[0-9]{0,3}$');
      while(!re.test(pos)) {
        pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
      }
      if(pos > input.value.length) {
        pos = input.value.length;
      }
      /* Einfügen des Formatierungscodes */
      var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
      input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
    }
  }
  //-->
  </script>
  </head>
  <body>
    <h1>Demo: Einf&uuml;gen von Inhalten in eine Textarea</h1>
    <p>Positionieren Sie einfach den Cursor innerhalb der textarea oder markieren Sie Text darin.
       W&auml;hlen Sie dann "Einf&uuml;gen", um <code>[link]...[/link]</code> an dieser Stelle
       einf&uuml;gen zu lassen, sofern es der Browser erm&ouml;glicht.</p>
    <form name="formular" action="">
      <p><textarea name="eingabe" cols="30" rows="10">Ihre Nachricht</textarea></p>
      <p><input type="button" value="Einfügen" onClick="insert('[link]', '[/link]')"></p>
    </form>
  </body>
  </html>

Danke schon mal im Vorraus

mfg
ZeroEnna
 
Zuletzt bearbeitet:

ZeroEnna

Erfahrenes Mitglied
Hi,

Ja der Code ist von SelfHTML (hab ich ja geschrieben ).
Die Beschreibung ist so an sich sehr verständlich, gibt mir aber keine detaillierte Antwort auf meine Fragen so dass ich das ganze genau verstehe.
Ich will einfach verstehen welche Funktion nun den markierten Text erfasst, welche dann die Tags um den Markierten Text legt und welche Funktion dann den Coursor verschiebt und aus welchen Parameter die einzelnen Funktionen die werte holen und umwandeln.
Ausserdem werden nicht alle verwendeten Funktionen erklärt ( und die sind für mich ausschlaggebend damit ich es im ganzen verstehe).
 

con-f-use

Erfahrenes Mitglied
Wieso machst du dir dann nicht die Mühe und schaust in der Objektreferenz die Befehle nach, die du nicht verstehst? Um das ganze bis ins letzte zu verstehen musst du ja eh den Syntax von JS erstmal lernen