Markierte Werte ersetzen || In Cursorposition einfügen

Sebigf

Erfahrenes Mitglied
Hallo zusammen!

1. Ich möchte, ein doch recht dynamisches, <textarea> für User zur Verfügung stellen, die keine HTML kenntnisse besitzen.

Jeder kennt es (VB, WBB etc.) besitzen es schon lange...

Es geht darum ich habe im Textfeld das Wort "Text" und möchte es, wenn es markiert wurde mit einem <b> Tag versehen. Wie mache ich so etwas am besten, dass es in allen Browsern funktioniert und es recht einfach ist

2. Ich habe ein POPUP, welches durch einen Klick einen Wert in einem <textarea> Feld "einfügt", jedoch immer am ende des ganzen Textes. Ich würde dies gerne so haben, das ich wenn ich einen Satz habe und den Cursor hinter dem 2. Wort habe und es einfüge, auch genau dort eingefügt wird.

Ich hoffe mir kann einer helfen...

Danke :)
 
Danke für den Links/Tipp. Das ganze nimmt langsam schon formen an. :)
Nur irgendwie bekomme ich das nicht ganz hin...

<a href=\"javascript:bbcode('b', '', '".$fname."')\" onmouseover=\"status=''; return true;\"><img border=\"0\" src=\"./images/buttons/toolbar/fett.gif\" alt=\"Text fett schreiben\" /></a>

Wie du siehst, habe ich keine Buttons, sondern normale href Links mit dem js tag drin. Wie kann ich das nun umsetzen?

$fname <-- ist der Name des Formulars

Dein Code, sieht bei mir wie folgt aus...

Code:
function bb(strTxt,strTag,strTag2) 
 {
 	var row = false;
 	if (!strTxt) {
 		if (strTag == 'url')
 		row = prompt('Bitte einen Linkname angeben (optional):\n', '');
 	strTxt = prompt('Bitten den Text eingeben, der formatiert werden soll:\n['+strTag+']xxx[\/'+strTag+']', strTag2);
 		}
 	if(strTxt=='http://') return '';
 	return '['+ strTag + (row ? '='+ strTxt : '') +']'+ (row ? row : strTxt) +'[\/'+ strTag +']';
 }
 
 function bbcode(strTag,strTag2,strTag3) {
 		var	objEditor = document.strTag3.text,
 		blnIe = document.selection,
 		intStart = objEditor.selectionStart;
 
 	objEditor.focus();
 	if(blnIe) {
 		var sel = blnIe.createRange();
 		sel.text = bb(sel.text,strTag,strTag2);
 		blnIe.select();
 	} else if (intStart) {
 			intEnd = objEditor.selectionEnd;
 			objEditor.value =
 				objEditor.value.substring(0,intStart) +
 			bb( objEditor.value.substring(intStart,intEnd), strTag, strTag2 ) +
     		    objEditor.value.substring(intEnd,objEditor.value.length);
 } 	else
 			objEditor.value += bb('',strTag,strTag2);
 }

## Nachtrag

Fast vergessen zu sagen, was nun nicht geht ^^

firefox sagt folgendes...

Code:
Fehler: objEditor has no properties
Quelldatei: .../func.js
Zeile: 249

Aber das Form gibt es so, oder muss ich es irgendwie anders deklarieren?


Danke!
 
Zuletzt bearbeitet:
Der Fehler sagt es ja schon: Die Variable objEditor keinen Wert.

Das liegt daran, dass var objEditor = document.strTag3.text, was du an meinen Quellcode verändert hast absoluter Murks ist. Ich weiß leider nicht wie dein Formular aufgebaut ist, aber ich nehme an, es gibt kein Formular mit dem Namen "strTag3". Wenn du den Namen des Formulars über die Variable strTag3 übergeben willst muss die zuweisung so lauten: var objEditor = document.forms[strTag3].elements['text'];.
 
Zuletzt bearbeitet:
:D soweit war mir das auch klar ^^

Aber was kann es denn sein? Ich habe ja alles Codes so gepostet, wie ich Sie nutze...

Danke!
 
Tut mir leid ich verstehe nich, was du mir damit sagen wilslt. Ich habe dir doch gerade erklärt, was das Problem ist und wie du es lösen kannst.
 

Neue Beiträge

Zurück