Smilie an Cursorposition einfügen

      Smilie an Cursorposition einfügen

      Art: Skript

      Beschreibung: Standarmäßig werden Smilies am Ende des Gästebucheintrages eingefügt. Mit diesem Script und ein paar kleinen Änderungen an der Eintragungsseite wird der Smilie an der Cursorposition eingefügt. Einzige Voraussetzung: Eigene Eintragungsseite.

      Autor: Mister
      Demo: flf-book.de/Benutzer/orv.htm
      Sonstiges: Details in diesem Thread: Smilies einfügen

      Das JavaScript auf der Eintragungsseite:

      Quellcode

      1. <script language="JavaScript">
      2. <!--
      3. function Smilie(SmilieCode)
      4. {
      5. document.neu.nachricht.value = document.neu.nachricht.value + SmilieCode;
      6. }
      7. function Popup($url)
      8. {
      9. window.open($url,"Hilfe","width=320,height=300,left=0,top=0,scrollbars=yes");
      10. }
      11. //-->
      12. </script>

      muss durch:

      Quellcode

      1. <script language="JavaScript" type="text/javascript">
      2. <!--
      3. var agt = navigator.userAgent.toLowerCase();
      4. var is_major = parseInt(navigator.appVersion);
      5. var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
      6. var is_ie4up = (is_ie && (is_major >= 4));
      7. var is_gecko = (agt.indexOf('gecko') != -1);
      8. function uni_tag(front, end)
      9. {
      10. document.neu.nachricht.focus();
      11. if (is_ie4up)
      12. {
      13. document.neu.nachricht.caretPos.text = front + document.neu.nachricht.caretPos.text + end;
      14. }
      15. else
      16. {
      17. if (is_gecko)
      18. {
      19. edit = document.neu.nachricht;
      20. edit.value = edit.value.substring(0, edit.selectionStart) + front +
      21. edit.value.substring(edit.selectionStart, edit.selectionEnd) + end +
      22. edit.value.substring(edit.selectionEnd, edit.value.length);
      23. }
      24. else document.neu.nachricht.value += front + end;
      25. }
      26. }
      27. function Smilie(text)
      28. {
      29. text = ' :' + text + ': ';
      30. front = ''; uni_tag('', text);
      31. }
      32. function storeCaret(textEl)
      33. {
      34. if (textEl.createTextRange)
      35. {
      36. textEl.caretPos = document.selection.createRange().duplicate();
      37. }
      38. }
      39. function Popup($url)
      40. {
      41. window.open($url,"Hilfe","width=320,height=300,left=0,top=0,scrollbars=yes");
      42. }
      43. //-->
      44. </script>

      ersetzt werden. Die Leerzeichen und Doppelpunkte beim Aufruf des Scripts können entfallen, da sie vom Script selbst eingesetzt werden, also z. B.

      Quellcode

      1. javascript: Smilie(' :wink: ')
      2. durch
      3. javascript: Smilie('wink')

      Außerdem muss beim Nachrichtenfeld noch folgende Änderung vorgenommen werden:

      Quellcode

      1. <textarea name="nachricht" cols="XX" rows="YY" onkeyup="storeCaret(this);" onclick="storeCaret(this);" onselect="storeCaret(this)"></textarea>

      Für XX und YY sind die Spalten- und Zeilenanzahlen des eigenen Textfeldes einzutragen.

      Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von „Mister“ ()