commit 5a0bb9ce1f2bf6de7bcf0b55b3e294e19026e618
parent 95a166b85b7c7f5df5bf2e222a8d0ac8e3530527
Author: dankert <devnull@localhost>
Date: Thu, 27 Jan 2005 01:06:22 +0100
Javaskript-Funktionen fuer Editor
Diffstat:
1 file changed, 57 insertions(+), 0 deletions(-)
diff --git a/themes/default/js/editor.js b/themes/default/js/editor.js
@@ -0,0 +1,57 @@
+
+// Quelle:
+// http://aktuell.de.selfhtml.org/tippstricks/javascript/bbcode/
+function insert(tagName, aTag, eTag)
+{
+ var input = document.forms[0].elements[tagName];
+ input.focus();
+ /* IE */
+ if(typeof document.selection != 'undefined') {
+ /* Einfuegen 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();
+ }
+ /* Gecko */
+ else if(typeof input.selectionStart != 'undefined')
+ {
+ /* Einfuegen 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;
+ }
+ /* uebrige Browser */
+ else
+ {
+ /* Abfrage der Einfuegeposition */
+ var pos;
+ var re = new RegExp('^[0-9]{0,3}$');
+ while(!re.test(pos)) {
+ pos = prompt("Position (0.." + input.value.length + "):", "0");
+ }
+ if(pos > input.value.length) {
+ pos = input.value.length;
+ }
+ /* Einfuegen des Formatierungscodes */
+ var insText = prompt("Text:");
+ input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
+ }
+}