Seite 4 von 4

Verfasst: 15.07.2006 10:51
von arteck
ahhhhhhhhh danööööööööööööööö

Verfasst: 14.02.2007 16:22
von taladan
Also ich habe mich mit den JavaScript beschäftigt und eine Lösung gefunden, die bei allem so funktionerit wie es sollte. Das bedeutet, das der Tag auch tatsächlich dort eingefügt wird, wo der Cursor aktuell steht. Es scheint bei allen Browsern zu funktionieren, welche ich probiert habe.

Code: Alles auswählen

<script language="javascript" type="text/javascript">
<!--
function emoticon(Text) {
  var input = parent.document.forms['post'].elements['message'];
  input.focus();
  Text = " " + Text + " ";
  /* für Internet Explorer */
  if(typeof document.selection != 'undefined') {
    /* Einfügen des Formatierungscodes */
    var range = parent.document.selection.createRange();
    var insText = range.text;
    range.text = Text + insText;
    /* Anpassen der Cursorposition */
    range = document.selection.createRange();
    if (insText.length == 0) {
      range.move('character', -eTag.length);
    } else {
      range.moveStart('character', Text.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) + Text + insText + input.value.substr(end);
    /* Anpassen der Cursorposition */
    var pos;
    if (insText.length == 0) {
      pos = start + Text.length;
    } else {
      pos = start + Text.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 = pompt("Bitte rgeben Sie den zu formatierenden Text ein:");
    input.value = input.value.substr(0, pos) + Text + insText + input.value.substr(pos);
  }
}

//-->
</script>
Viel Spaß damit.