Steuerzeichen in <textarea>
Stefan
- javascript
Hi Forum!
Ich will per Javscript ein Steuerzeichen in eine Textarea einfügen. Leider kann ich die Cursorposition nicht festellen, er klatscht das Zeichen immer an den Schluss ran (siehe JS-Code, ist eigentlich auch klar)...
Kann mir Jemand helfen? Also: wie bekommt man die Cursorposition in Javascript heraus? "##bc_bildtag##" ist das Steuerzeichen, das ich einsetzen will, diese sollen nachher in einem Template mit Bildern ersetzt werden.
<textarea class="form" onkeyup=checkdigits(); name="bc_Lauftext" cols="62" rows="30" style="font-size:12px"><?= $row_Artikel['bc_Lauftext'] ?></textarea>
<img src="bla.jpg" onclick="document.template.bc_Lauftext.value = document.template.bc_Lauftext.value+'##bc_bildtag##'">
Danke, Stefan!
Wen es interessiert - kleiner Workaround!
Ich weiß zwar nicht wieso es funktioniert (die Funktion create_Range() ist nämlich gar nicht vorhanden) - aber es geht.
Ganz ehrlich: ICH HASSE JAVASCRIPT
<script type="text/javascript">
<!--
var mySelection = '';
//-->
</script>
<textarea class="form" onkeyup="checkdigits()" onmouseup="mySelection = selection.createRange()" name="bc_Lauftext" cols="62" rows="30" style="font-size:12px"><?= $row_Artikel['bc_Lauftext'] ?></textarea>
<img src="bla.jpg" onclick="mySelection.text = '##bc_bildtag##'">
Ich will per Javscript ein Steuerzeichen in eine Textarea einfügen. Leider kann ich die Cursorposition nicht festellen,
Mit SelfHTML kommst Du da nicht weiter. Die von Dir gesuchte Funktion findest Du in http://de.wikipedia.org/style/wikibits.js unter dem Namen insertTags().
Interessanterweise scheint sich zur Abwechslung mal der IE an die W3C-Empfehlungen (http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html) zu halten, während Mozilla irgendetwas eigenes benutzt.
Hallo,
Mit SelfHTML kommst Du da nicht weiter. Die von Dir gesuchte Funktion findest Du in http://de.wikipedia.org/style/wikibits.js unter dem Namen insertTags().
Interessanterweise scheint sich zur Abwechslung mal der IE an die W3C-Empfehlungen (http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html) zu halten, während Mozilla irgendetwas eigenes benutzt.
Dieses document.selection.createRange() und das caretPos von MSIE ist irgendetwas, aber nichts, was ich in DOM 2 Range wiederfinden kann. Dort existiert zwar eine Methode mit diesem Namen, aber mit offensichtlich anderem Sinn (zumindest in diesem Kontext - es ist schon länger her, als ich mich in das createRange-Konzept im MSDN eingelesen hatte, Parallelen zu DOM 2 Range bestehen durchaus, wenn ich mich recht erinnere).
Mozilla implementiert zwar DOM 2 Range (http://www.mozilla.org/docs/dom/domref/dom_range_ref2.html), ich fürchte aber, das hilft hier kein bisschen weiter, um die Cursorposition in einer textarea herauszufinden. Hier wird mit selectionStart und selectionEnd gearbeitet, welche wie du sagst eigene Erfindungen sind.
DOM 2 Range habe ich persönlich sowieso noch nicht durchschaut, ich habe auch noch nirgendwo eine konkrete Anwendung gesehen. Anständige Dokumentatioen existieren natürlich nicht, aber das gilt eine ganze Handvoll DOM-Recommendations.
Mathias
Mozilla implementiert zwar DOM 2 Range (http://www.mozilla.org/docs/dom/domref/dom_range_ref2.html)
Der Link sollte http://www.mozilla.org/docs/dom/domref/dom_range_ref.html lauten.