Hi @all
Sagt mal, wie kann ich denn mit Java-Script in einem Formular-Textarea-Feld an der Stelle, an der sich gerade der Cursor befindet, eine Zeichenkette einfügen?
Danke für eure Hilfe und frohe Ostern.
Hi @all
Sagt mal, wie kann ich denn mit Java-Script in einem Formular-Textarea-Feld an der Stelle, an der sich gerade der Cursor befindet, eine Zeichenkette einfügen?
Danke für eure Hilfe und frohe Ostern.
forumssuche verwenden, stichwort "mausverfolger"
[Blockierte Grafik: http://www.zeroweb.ch/grafiken/icon.gif]
Zitat von ph0reforumssuche verwenden, stichwort "mausverfolger"
[Blockierte Grafik: http://www.zeroweb.ch/grafiken/icon.gif]
erstmal beitrag lesen bevor man losschimpft.... außerdem ist das schimpfen meine aufgabe
Also das Richtige ist dort nicht für mich dabei.
Ich möchte nichts, was meine Maus verfolgt, sondern nur einen Befehl, der mein Problem löst.
Fire, wie gut bist du mit scripten? Nutze so einen (JavaScript-) code in einem meiner Foren, ist aber dafür angepasst und müsste umgeschrieben werden.
Ist kein Problem.
Markiere mir einfach die Stelle, an der du einfügst.
Oder die Funktion, die dafür verantwortlich ist.
Ich suche mir das raus, was ich benötige.
Dürfte ich hinbekommen.
Danke
<script language="Javascript" type="text/javascript">
<!--
function insert(aTag, eTag) {
var input = document.getElementById('postform').elements['message'];
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 oder - bei smilies - nur OK/Enter:");
input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
}
}
//-->
</script>
document.write("<input class='forumcode' title='Fette Schrift. \n An beliebiger Stelle im Textfeld einfügen \n oder markierten Text auf Fett setzen' type='image' src='http://www.rattarium.net/news/design/fett.gif' value=' Fett ' onClick=\"insert(' [b]', '[/b] ')\">")
document.write("<input class='forumcode' title='Kursiv. \n An beliebiger Stelle im Textfeld einfügen \n oder markierten Text auf kursiv setzen' type='image' src='http://www.rattarium.net/news/design/kursiv.gif' onClick=\"insert(' [i]', '[/i] ')\">")
Alles anzeigen
view-source:http://www.network54.com/Forum/post?for…248&messageid=0
Ich denke das hilft mir weiter.
Werde es heute Nacht auseinander klabustern.
Sage morgen bescheid, ob ich es verstanden habe.
Schönen Ostersonntag schon mal.
Also ich habe das was ich wissen wollte herausgefunden.
Konnte mein Problem jedoch nur für den IE lösen.
Reicht aber.
THX
Hab mal irgendwo eine Funktion gefunden mit der es auch im FF funktioniert. Die Kommentare sind leider Französisch
<script language="JavaScript" type="text/javascript">
/*function storeCaret(text)
{ // voided
}
*/
function AddText(startTag,defaultText,endTag)
{
with(document.form_eintragen)
{
if (kommentar.createTextRange)
{
var text;
kommentar.focus(kommentar.caretPos);
kommentar.caretPos = document.selection.createRange().duplicate();
if(kommentar.caretPos.text.length>0)
{
//gère les espace de fin de sélection. Un double-click sélectionne le mot
//+ un espace qu'on ne souhaite pas forcément...
var sel = kommentar.caretPos.text;
var fin = '';
while(sel.substring(sel.length-1, sel.length)==' ')
{
sel = sel.substring(0, sel.length-1)
fin += ' ';
}
kommentar.caretPos.text = startTag + sel + endTag + fin;
}
else
kommentar.caretPos.text = startTag+defaultText+endTag;
}
else kommentar.value += startTag+defaultText+endTag;
}
}
</script>
Alles anzeigen
Aufrufen durch:
Grüsse
Ed Home
Der Code von dir funktioniert sicher in allen Browsern.
Ist ja auch für jeden eine Funktion geschrieben wurden.
Ich brauchte aber einen etwas anderen Code und den konnte ich mir nur für den IE umschreiben. Folgendermaßen sieht er aus:
function insert(text)
{
document.Formular.Textfeld.focus();
var range = document.selection.createRange();
range.text = text;
}
Wenn dein Code-Beispiel das auch macht, dann habe ich es nicht richtig verstanden.
Schönen Ostermontag noch @all
Hab jetzt auch den Rest verstanden.
Nun konnte ich mir auch eine Funktion für die anderen Browser schreiben.
Schon schlimm, dass man mehrere Funktionen für verschiedene Browser benötigt. Ein Standart wäre da echt nicht schlecht.
Danke der Hilfe.
Bis die Tage.