markierter Text formatieren like BB-Code (JavaScript)

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
ronnyronnsen
Mitglied
Beiträge: 5
Registriert: 07.09.2006 16:50

markierter Text formatieren like BB-Code (JavaScript)

Beitrag von ronnyronnsen »

Hallo Leute.

Ich sitze an einem kleinen Problemchen mit JavaScript.
Habe gerade ein kleines CMS gebaut für Nicht-Code-Fähige Leute EndUser ; ).

Einfachstes Beispiel.:

In der Textarea schreibt man seinen gewünschten Text. Markiert ihn einfach, drückt den button "kursiv" und schon wird der dazugehörige html-tag eingefügt.

Die Funktion:

function kursiv() {
var range = document.selection.createRange();
if(range.text)
range.text = '<i>' + range.text + '</i>';
else alert('Nichts Markiert');
}

nun funktioniert das im IExplorer und Opera wunderbar, aber leider nicht im Firefox. Soweit ich weiss (durch google) liegts wohl daran das FireFox das createRange() nicht in seiner DOM stehen hat.

Kann mir bitte jemand auf die Sprünge helfen wie ich das managen könnte?

Ich frage hier weil ich mir die anregung dazu mit BB geholt habe.

Grüße an die Community, rr
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Code: Alles auswählen

var range=false;
if(window.getSelection) { // for Netscape 6 and Mozilla
 range=window.getSelection().toString();
}
else if(document.selection) { //for Internet Explorer 5.5 +
 range=document.selection.createRange().text;
}
if(range)
...
Sollte dann auch den Firefox dazu bewegen. :wink: easy
ronnyronnsen
Mitglied
Beiträge: 5
Registriert: 07.09.2006 16:50

Beitrag von ronnyronnsen »

hey. danke für die schnelle antwort.

So recht klappt es noch nicht.
habe einfach mal zum test ein

Code: Alles auswählen

function kursiv() {
	var range = window.getSelection().toString();
	if(range.text)
	range.text = '<i>' + range.text + '</i>';
    else alert('Nichts Markiert');
}
daraus gemacht.

Firefox meint darauf hin wenn ich meinen kursiv button drücke -> "nichts markiert"
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Klar, das Rote wär schon auch wichtig. Schau mal -->
easygo hat geschrieben:var range=false;
if(window.getSelection) { // for Netscape 6 and Mozilla
range=window.getSelection().toString();
}
else if(document.selection) { //for Internet Explorer 5.5 +
range=document.selection.createRange().text;
}
if(range)
...
Kanns aber leider nicht testen, bin grad busy.
ronnyronnsen
Mitglied
Beiträge: 5
Registriert: 07.09.2006 16:50

Beitrag von ronnyronnsen »

Yes i know.

Ich hab folgende funktion:

Code: Alles auswählen

function kursiv() {
	
var range=false;
if(window.getSelection) { // for Netscape 6 and Mozilla
 range=window.getSelection().toString();
}
else if(document.selection) { //for Internet Explorer 5.5 +
 range=document.selection.createRange().text;
}
if(range) 
range.text = '<i>' + range.text + '</i>';
    else alert('Nichts Markiert');
}
wie gesagt..."Nichts markiert"
Antworten

Zurück zu „Coding & Technik“