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, 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, 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>
kann mir jemand helfen... vielen dank schonmal