!!! only4Pofis !!! - Wer kennt sich mit strings aus.
Borsti
- javascript
Leute ich habe ein ernsthaftes Problem. Ich erkläre ersteinmal mein Vorhabe.
Ich habe eine Textarea, welche ich nutze um werte einzulesen. Diese Werte sollen mit <enter> [also einen '\n'] getrennt werden. Dies kann dann wie folgt aussehen:
1. Wert\n
2. Wert\n
.
.
.
Das ist auch alles so in ordnung. das funktioniert ja auch ohne probleme. ich kann im weiteren verlauf meines skriptes nun dieses feld auslesen und in eine variable lesen. OK, das klappt auch. Nun trenne ich dieses Werte anhand diesen '\n' - das mache ich mit:
var Werte = Eingabe.split("\n");
Ein Wunder es klappt, ich habe nun ein Array, welches alle meine Werte, aufgelistet in die einzelnen Felder, hat. Was ja auch so gewollt ist. Nun sagt mir meine Kenntniss, dieses '\n' [nach welchen ich ja getrennt habe] ist nicht mehr in den einzelnen Elementen des Strings vorhanden. Meine Felder MÜSSTEN also wie folgt aussehen.
Werte[0] = "1. Wert"
Werte[1] = "2. Wert"
.
.
.
Ok, wenn ich diese Werte mit einem alert ausgeben, dann mag das sogar auch stimmen. Dort ist kein zeilenumbruch mehr zu sehen, doch sobald ich die werte in eine neue textarea-umgebung einbinden möchte... Tata, ist überall dort wo ich das '\n' hatte ein Zeilen umbruch, was aber nicht sein soll! ...
kann mir da irgendjemand helfen?
mfg Borsti
PS: beim link kann man das problem selber testen!!!
http://forum.de.selfhtml.org/?m=79392&t=14327
</faq/#Q-11>
sorry, das wuste ich nicht! ...
sorry, das wuste ich nicht! ...
</faq/#Q-24> 3.
hi cowboy,
Nun trenne ich dieses Werte anhand diesen '\n' - das mache ich mit: var Werte = Eingabe.split("\n");
Ein Wunder es klappt, ich habe nun ein Array, welches alle meine Werte, aufgelistet in die einzelnen Felder, hat. Was ja auch so gewollt ist. Nun sagt mir meine Kenntniss, dieses '\n' [nach welchen ich ja getrennt habe] ist nicht mehr in den einzelnen Elementen des Strings vorhanden. Meine Felder MÜSSTEN also wie folgt aussehen.
nicht ganuz korrekt, spit() teil nämlich nur an der begrenzung, entfernt diese aber nicht, demnach hast du korrekterweise
Werte[0] = "1. Wert\n"
Werte[1] = "2. Wert\n"
.
.
.
sobald ich die werte in eine neue textarea-umgebung einbinden möchte... Tata, ist überall dort wo ich das '\n' hatte ein Zeilen umbruch, was aber nicht sein soll! ...
doch, hast du ja nicht weggemacht.
kann mir da irgendjemand helfen?
deine werte müssten dann noch mal
var neuerWert = Werte[x].substring(0,Werte[x].length-2);
durchlaufen, denke ich zumindest so auf die schnelle. probier es wenigstens mal aus.
PS: beim link kann man das problem selber testen!!!
geht bei mir nicht.
mfg
deine werte müssten dann noch mal
var neuerWert = Werte[x].substring(0,Werte[x].length-2);
durchlaufen, denke ich zumindest so auf die schnelle. probier es wenigstens mal aus.
nunja, ich habe diese idee auch schon gehabt, aber es klappt nicht! :-(( # fällt jemand noch etwas anderes ein? .. gibt es denn nicht soetwas wie in php? dort gibt es einen Befehl, welchen ich benutzen kann, um soetwas direkt herauszufiltern! ich verstehe nicht, warum es nicht gehen soll! ...
das der link bei dir nicht geht, liegt daran, das ich den falschen link genommen habe! ...der richtige link ist jetzt dabei! ...
naja, hast du vielleicht etwas mehr quelltext? ich würde es gern mal in aktion sehen.
das der link bei dir nicht geht, liegt daran, das ich den falschen link genommen habe! ...der richtige link ist jetzt dabei! ...
ich sehe nur eine wirklich fette botschaft, an wen man sich wenden kann, aber die hilft hier wohl nicht. übersehe ich was?
mfg
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();
}
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(); }