Hallo,
ich habe ein kleines Problem mit einem bbcode script.
Wenn ich in der Textarena einen Text markiere und sich darüber ein Text, z. B. mit zwei Leerzeilen dazwischen befindet, und dann den bbcode über den Button ausführe, setzt er mir zwar den bbcode um das Wort, setzt dabei aber den Text an das Ende des darüberliegenden Text. Egal ob Leerzeilen etc. dahinter sind. Wir bekomme ich es hin, daß er den bbcode um den Text setzt und Leerzeilen in der Textarena nicht löscht?
Hier ein Auszug:
kann mir jemand helfen... vielen dank schonmal
ich habe ein kleines Problem mit einem bbcode script.
Wenn ich in der Textarena einen Text markiere und sich darüber ein Text, z. B. mit zwei Leerzeilen dazwischen befindet, und dann den bbcode über den Button ausführe, setzt er mir zwar den bbcode um das Wort, setzt dabei aber den Text an das Ende des darüberliegenden Text. Egal ob Leerzeilen etc. dahinter sind. Wir bekomme ich es hin, daß er den bbcode um den Text setzt und Leerzeilen in der Textarena nicht löscht?
Hier ein Auszug:
Code:
<script language="javascript" type="text/javascript"> <!-- // Array mit den HTML-Tags zum Formatieren des Textes arrTags = new Array(); arrTags['fett'] = new Array("", ""); var txtBefore; var txtAfter; var txtMiddle; function splitSelection() { // TextArea den Fokus geben document.formular.txtArea.focus(); // TextRange-Objekt des selektierten Textes erstellen var selText1 = document.selection.createRange(); // Zum Positionieren des Cursors an Anfang der Markierung var selText2 = document.selection.createRange(); // Zum Positionieren des Cursors an Ende der Markierung // Markierten Text auslesen txtMiddle = selText1.text; // Bewegt den Cursor vor den markierten Text selText1.collapse(true); // Start- und Endpunkt sind gleich // Bewegt den Cursor an das Ende des markierten Textes selText2.collapse(false); // Start- und Endpunkt sind gleich // Markierte Bereiche duplizieren var selTxtBefore = selText1.duplicate(); // Endpunkt selTextBefore vor markiertem Bereich var selTxtAfter = selText2.duplicate(); // Startpunkt selTextAfter nach markiertem Bereich // Setzt das Objekt auf den Text der TextArea -> selText1 enthält den gesamten Text der Area selText1.moveToElementText(document.formular.txtAr ea); // Der Startpunkt von selTxtBefore wird der Startpunkt des gesamten Area-Textes selTxtBefore.setEndPoint("StartToStart", selText1); // Der Endpunkt von selTxtAfter wird der Endpunkt des gesamten Area-Textes selTxtAfter.setEndPoint("EndToEnd", selText1); txtBefore = selTxtBefore.text; txtAfter = selTxtAfter.text; } function insert(strFormat) { splitSelection(); document.formular.txtArea.value = txtBefore + arrTags[strFormat][0] + txtMiddle + arrTags[strFormat][1] + txtAfter; document.formular.txtArea.focus(); } // Falls ein Wert über die URL übergeben wurde if(window.location.search != ""){ // Text für Vorschau auslesen und extrahieren var strParameter = String(unescape(window.location.search)); strParameter = strParameter.substr(1, strParameter.length); } //--> </script> </head> <body> <form name="formular" action="" method="POST"> <!-- Buttons --> <input type="button" title="Fett: Text" value="B" style="font-weight:bold; width: 30px" onmouseover="this.style.cursor=('hand')" onClick="insert('fett')"> <p> <textarea name="txtArea" rows="16" cols="45"></textarea> </p> </form>
Kommentar