Borsti: !!! only4Pofis !!! - Wer kennt sich mit strings aus.

Beitrag lesen

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(); }