Problem mit javascript bbcode

imhotepxi

Grünschnabel
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:

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
 

Neue Beiträge

Zurück