unter http://www.thueringenweb.de/php/seba/ kann man sich das ganze mal anschauen! ..
zuerst klickt man auf das textareafeld, um diesen dann einen focus zu geben! ... dann klickt man im oberen frame auf den (un)sortierten Listen - button und legt los!
der quelltext für die js datei sieht wie folgt aus (komplettes Listing)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Toolbox V1.0 //scripted by Borsti //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // //Wichtige Punkte für die Benutzung: //Es können nur ausgewählte Felder angewählt werden. Dies müssen folgende Tag-Parameter besitzen: // // onClick = "parent.toolbox.storeCaret(this);" // onKeyUp = "parent.toolbox.storeCaret(this);" // onChange = "parent.toolbox.storeCaret(this);" // onFocus = "parent.toolbox.fieldChange(this.name, this.form.name, [Parameter]);" // // [Parameter] - hier kann angegeben werden, welche funktion ausgeschaltet ist // // b :: Fett-Tag NICHT möglich // k :: Kursiv Tag NICHT möglich // u :: Unterstrichen Tag NICHT möglich // s :: (Un-)Sort Aufz. Tag NICHT möglich // f :: Schriftarten Tag NICHT möglich // c :: Farb Tag NICHT möglich // l :: Link Tag NICHT möglich // // Beispiel: // parent.toolbox.fieldChange(this.name,'sfl'); // // Die Parameter sind freiwillig, und können in beliebiger reihenfolge // verwendet werden. // //Mögliche Felder sind <INPUT> und <TEXTAREA> - Felder // //Containervariablen
var NameFrame = 'textframe'; //Wie heisst der Frame auf dem Zugegriffen werden soll var Freiraum = ' '; //Geben Sie hier das/die Zeichen an was zwischen den beiden Tag's //stehen soll, wenn kein markierter Wert übergeben wird
//--------------------------------------------------------------------------------------------------------- // !!! Ab hier keine Variablen mehr ändern !!! //--------------------------------------------------------------------------------------------------------- var name, Form, mode, Aufz; //Globale Variablen var lastfield = 'no'; //Variable für das letzte Feld was benutzt wurde (no = undefined) var Para = ''; //verwaltung der Parameter
//hier wird die Ausgewertet welches Format ausgeführt werden soll function format(typ) { if (lastfield != 'no') { typ=parseInt(typ); switch(typ) { case 1: // Fett if (!(Para.search(/b/) != -1)) { AddTxt="<b>%TEXT%</b>"; AddText(AddTxt); } break; case 2: // Kursiv if (!(Para.search(/k/) != -1)) { AddTxt="<i>%TEXT%</i>"; AddText(AddTxt); } break; case 3: // Unterstrichen if (!(Para.search(/u/) != -1)) { AddTxt="<u>%TEXT%</u>"; AddText(AddTxt); } break; case 4: //Sortierte Aufzählung if (!(Para.search(/s/) != -1)) { mode = 4; Aufz = window.open("aufz.htm","Aufz","width=350,height=230,left=0,top=0"); } break; case 5: //Unsortierte Aufzählung if (!(Para.search(/s/) != -1)) { mode = 5; Aufz = window.open("aufz.htm","Aufz","width=350,height=230,left=0,top=0"); } break; case 6: //Arial if (!(Para.search(/f/) != -1)) { AddTxt="<font face="Arial, Helvetica, sans-serif">%TEXT%</font>"; AddText(AddTxt); } break; case 7: //Times New Roman if (!(Para.search(/f/) != -1)) { AddTxt="<font face="Times New Roman, Times, serif">%TEXT%</font>"; AddText(AddTxt); } break; case 8: //Courier New if (!(Para.search(/f/) != -1)) { AddTxt="<font face="Courier New, Courier, mono">%TEXT%</font>"; AddText(AddTxt); } break; case 9: //Georgia if (!(Para.search(/f/) != -1)) { AddTxt="<font face="Georgia, Times New Roman, Times, serif">%TEXT%</font>"; AddText(AddTxt); } break; case 10: //Verdana if (!(Para.search(/f/) != -1)) { AddTxt="<font face="Verdana, Arial, Helvetica, sans-serif">%TEXT%</font>"; AddText(AddTxt); } break; case 11: //Geneva if (!(Para.search(/f/) != -1)) { AddTxt="<font face="Geneva, Arial, Helvetica, san-serif">%TEXT%</font>"; AddText(AddTxt); } break; } } }
//Hier wird die Position & der marktierte Bereich verarbeitet function storeCaret(text) { if (text.createTextRange) { text.caretPos = parent.textframe.document.selection.createRange().duplicate(); } }
function AddText(text) { //Hat das Feld einen Parameter für den Markierten Text zurückgegeben (also ist es ein IE) //dann ersetzte den markierten Text mit dem in der von der Variable "text" if (eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".createTextRange") && eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".caretPos")) { var caretPos = eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".caretPos"); caretPos.text = text.replace(/%TEXT%/,caretPos.text); }
//Ansonsten hänge den Text von "text" an die letzte Position an //Mit der oben definierten Variable "Freiraum" kann man einstellen ob ein Zeichen zwischen dem //Angehängten folgen soll! Z.Bsp: Ein Freizeichen oder ein Semikolon oder was auch immer! else eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".value += text.replace(/%TEXT%/,""+Freiraum+"")");
//Focus wieder auf das letzt feld setzten eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".focus(caretPos)") }
//hier kann eingestellt werden, was passiert, wenn das Feld gewechselt wird. Hier wird auch angegeben, //welches Feld zuletzt den Focus hatte. Hierbei ist zu beachten , das hier nur Felder zählen welche //dafür deklariert wurden. [Sie Head-Info für genaue Details] function fieldChange(name, form, parameter) { var PreLastField;
//Variableninitialisierung PreLastField = lastfield; lastfield = name; Form = form;
if (parameter) Para = parameter; else Para = '_';
if (lastfield != PreLastField) { //hier kann etwas beliebiges ausgeführt werden, was einmalig beim wechsel in ein neues Feld //passieren soll var i=0; //Diesen Befehl nicht löschen, da sonst ein Fehler wegen der if-Schleife kommt } }
function aufz() { var AddTxt = ""; var Eingabe = Aufz.document.Eingabe.liste.value;
if (Eingabe.search(/\n/) > 0) { var Werte = Eingabe.split("\n");
//Steht schon was im Textfeld?!? Textbox = eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".value");
//AddText - zusammenschustern if (!(Textbox == '')) { if (mode == 4) AddTxt += "\r\n<ol>\n"; //sortierte Aufz else AddTxt += "\r\n<ul>\n"; //unsortierte Aufz } else { if (mode == 4) AddTxt += "<ol>\n"; //sortierte Aufz else AddTxt += "<ul>\n"; //unsortierte Aufz }
for (var i=0; i <= (Werte.length-1); i++) { var Wert2 = Werte[i].substring(0,Werte[i].length); AddTxt += " <li>"+Wert2+"</li>\n"; //Einzelne Werte hinzufügen }
if (mode == 4) AddTxt += "</ol>\n"; //sortierte Aufz else AddTxt += "</ul>\n"; //unsortierte Aufz //AddText - zusammengeschustert*/ } else { var Werte = Eingabe;
//Steht schon was im Textfeld?!? Textbox = eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".value");
//AddText - zusammenschustern if (!(Textbox == '')) { if (mode == 4) AddTxt += "\r\n<ol>\n"; //sortierte Aufz else AddTxt += "\r\n<ul>\n"; //unsortierte Aufz } else { if (mode == 4) AddTxt += "<ol>\n"; //sortierte Aufz else AddTxt += "<ul>\n"; //unsortierte Aufz }
AddTxt += " <li>"+Werte+"</li>\n"; //Einzelne Werte hinzufügen
if (mode == 4) AddTxt += "</ol>\n"; //sortierte Aufz else AddTxt += "</ul>\n"; //unsortierte Aufz //AddText - zusammengeschustert }
alert (AddTxt); AddText(AddTxt); window.Aufz.close(); }