Zur Navigation

BBCode einfügen [3]

21 Stefan (Gast)

Hallo C)-(iLL@,


<script language="JavaScript">
function cur_ins(field, startTag, endTag, offset) {
 field.focus();
 if (document.getSelection) { //FF, NS
   selStart = field.selectionStart;
   selEnd = field.selectionEnd;
   text = field.value.substring(selStart, selEnd);
   field.value = field.value.substring(0, selStart) + startTag + text + endTag + field.value.substring(selEnd);
   if (text.length > 0) {
     if (offset != 0) {
       field.selectionStart = selStart + startTag.length + text.length - offset;
     } else {
       field.selectionStart = selStart + startTag.length + text.length + endTag.length;
     }
   } else {
      field.selectionStart = selStart + startTag.length;
   }
   field.selectionEnd = field.selectionStart;
 } else 
 if (document.selection) { //IE
     marker = document.selection.createRange();
     text = marker.text;
     marker.text = startTag+text+endTag;
     marker = document.selection.createRange();
     if (text.length > 0) {
       if (offset != 0) {
         marker.move('character', startTag.length + text.length - offset);
       } else {
         marker.move('character', startTag.length + text.length + endTag.length + offset);
       }
     } else {
       marker.move('character', -(endTag.length));
     }
     marker.select();
  }
}
</script>


<a onclick="javascript:cur_ins(document.getElementById('nachricht'), '', '', 0);"><img src="bbcode/ed_format_bold.gif" alt="Fett" width="18" height="18" border="0"></a>

Mehr habe ich nicht, der Code ist ja von dir ;-)

Gruss Stef

02.03.2006 22:12

22 Stefan (Gast)

Sorry, den BBCode hat es mir beim letzten Beitrag hier nicht genommen!

02.03.2006 22:16

23 C)-(iLL@

Na ja, das JS interessiert mich weniger, ich weiß, dass das funktioniert - mehr das HTML...

ich teste es damit (das JS habe ich hier rausgenommen, Bildpfad an Deinen angepasst):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
	
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<title></title>
</head>
<script type="text/javascript">
....
</script>
<body>
<form>
<p>
<textarea id="nachricht" name="nachricht" cols="60" rows="15"></textarea>
<a onclick="javascript:cur_ins(document.getElementById('nachricht'), '[ b]', '[/b ]', 0);"><img src="bbcode/ed_format_bold.gif" width="18" height="18" /></a>
</p>
</form>
</body>
</html>

02.03.2006 22:20

24 Stefan (Gast)

Hoppla, das war mein Fehler ich habe die id="nachricht" vergessen.

Herzlichen Dank für deine Geduld ;-)

Gruss Stef

02.03.2006 22:25

25 C)-(iLL@

Hoppla, das war mein Fehler ich habe die id="nachricht" vergessen.
*LOL*

02.03.2006 22:27

26 hallo ihrs (Gast)

nettes script, wofür ist bei url die -1 und bei b die 0. was macht diese zahl, hängt es mit dem markieren zusammen oder wo der cursor hin rutschen soll???

MfG
Chris

07.08.2006 02:04

27 Rudy

Hallo Chris,

Der Parameter offset ist da, weil es für manche BB-Tags vonnöten ist, den Cursor nach dem Einfügen zu verschieben. Z.B. bei zusammengesetzten Tags wie '[url=' + ']' - Denn dann wird das markierte von den Tags umschlossen (das Markierte wird also zum Wert hinter dem =) und der Cursor kann dann anhand dieser Zahl z.B. zwischen die ][ verschoben werden.

Schönen Gruß,
Rudy

07.08.2006 18:28

28 Jörg

Hallo Rudy,

hast du das Script eigentlich mal mit einem Safari getestet oder diesbezüglich Rückmeldungen? Zwei Safari Userinnen haben mir berichtet, dass beim Klicken der Buttons nichts passiert. JavaScript ist wohl aktiviert, sonst würden sie die Buttons nicht sehen. Mit Firefox, Opera, Konqueror und dem IE funktioniert das Einfügen nach meinen Tests problemlos. Aber vielleicht spicht die Weiche den Safari falsch an (?):

if (document.getSelection) { //FF, NS
} else 
  if (document.selection) { //IE

22.01.2008 17:26

29 Rudy

Wie teste ich mit Safari unter Kubuntu? Ich such mal... oder weißt Du schon wie?

22.01.2008 20:25