Hab noch immer Probleme mit automatischem Zeilenumbruch
Bocky
- javascript
Hi Leute,
als erstes mal wünsche ich euch einen schönen Sonntag! Hoffentlich seid ihr in der Lage ihn zu geniessen und nicht arbeiten zu müssen!
Ich habe noch immer Probleme mit meine Javascript
Es handelt sich um ein System das aktuelle Nachrichtenschlagzeilen via Javascript ausliest! Jetzt möchte ich den Header allerdings so abändern das sollte nach dem 15 Zeichen noch ein Leerzeichen kommt ein Zeilenumbruch eingefügt wird!
Ich hab schon alles versucht! Auch mit den bisherigen Tips die ich hier bekommen habe bin ich nicht weitergekommen! Ich bin mit meinem Latein wirklich am Ende! Ich sitze hier seit gestern morgen druchgehend an dem Script und kriege es nicht gebacken! Aber ihr kennt das ja: Schaut jemand unbeteiligtes drauf sieht er den Fehler eher als ob man selber 10 Mal schaut
Hier das Script (um den Zeilenumbruch einzufügen) wie ich es bis jetzt hab:
<SCRIPT language="Javascript">
var Header1 = article[0].headline_text
var Suche = Header1.indexOf (/P/) ;
if (Suche <= 15) {
Suche = Header1.indexOf (/P/,Suche) ;
}
else
Suche.replace(/ / ,"<br>") ;
</SCRIPT>
Helft mir bitte!
Gruß
Bocky
Hi Bocky,
hast ja ein gar bockiges Problem..;-)
Was funktioniert denn nicht? Und mit welchem Headline-String?
Grüße,
Martin
Hi martin,
Der Headline-String stammt noch aus einem Javascript das vorher aufgerufen wird! Ich übernehme in meinem Script das Ergebnis dieses Strings da sich das (ohne das ich einen Einfluß darauf haben kann) ändert.Dafür nutze ich einen Service aus dem Web(www.moreover.com!
Da einige Nachrichtenüberschriften aber zu lang sind möchte ich diesen automatischen Zeilenumbruch einfügen!
Und diesen Zeilenumbruch macht er nicht! Ich weiß nicht wo der Fehler liegt! Ich kriege auch keine Fehlermeldung! UPS hab ich vorhin total vergessen!!!!!!!!!! Das /P/ das da gesucht wird ist nur ein Test ob das gefunden wird! Das sollte normalerweise ein Leerzeichen sein! Mist ich hänge wohl schon zu lange an diesem Script!
Ich nochmal,
vorausgesetzt, ich habe Dein Problem erfasst, kann Dir das folgende Script so lange helfen, bis Cheatah Dir dabei hilft, eine professionellere (kompaktere) Lösung zu finden.
<script language="JavaScript">
var ausgabe = "";
var part = "";
function umbruch(eingabe)
{
var max = 15;
var wie_oft = Math.floor(eingabe.length/max);
var anfang = 0;
for (i=0;i<wie_oft;i++)
{
part = eingabe.substr(anfang,max) + " <BR>";
ausgabe += part;
anfang += max;
}
ausgabe += eingabe.substr(anfang,eingabe.length);
return ausgabe;
}
document.write(umbruch('Dieser Text soll in Portionen a 15 Zeichen gesplittet werden-und noch einmal:Dieser Text soll in Portionen a 15 Zeichen gesplittet werden'));
hoffe, es hilft Dir..
Grüße,
Martin
</script>
Erst mal Danke für Diene schnelle Hilfe! Jetzt besteht nur noch ein Prob! *g* Ich nerve ich weiß!
Der Zeilenumbruch soll bei der nächsten Leerstelle nach dem 15 Zeichen gemacht werden!
Gruß
Bocky
Hi,
Der Zeilenumbruch soll bei der nächsten Leerstelle nach dem 15 Zeichen gemacht werden!
alert('Nächster Umbruch bei Stelle: ' + string.indexOf(' ', 15));
Den Rest solltest Du eigentlich mit Martins Script und den anderen Informationen hinbekommen.
Cheatah
Hallo Bocky,
Der Zeilenumbruch soll bei der nächsten Leerstelle nach dem 15 Zeichen gemacht werden!
Insgesamt ist dieses Problem auch nicht trivial und Martins Ansatz ist schön, ist aber für deine Aufgabenstellung etwas unhandlich.
Versuche einfach mal diese Lösung:
x='meta name="generator" content="Ulli Meybohms HTML EDITOR"';
x=x.split(" ");
y="";
j=1;
zeichen=15;
for (i=0;i<x.length;i++)
{
y+=x[i];
if (y.length>j*zeichen) {y+="<br>";j++} else y+=" ";
}
document.write(y);
split zerlegt den String in Teilzeichenketten. Das Trennzeichen ist hier ein Leerzeichen.
In der Schleife werden die Zeichenketten wieder zusammengebaut. Bei jedem Durchlauf prüft das Script ist die Länge der Kette größer als ein Vielfaches (j) von 15. Ist das der Fall, wird ein <br> angefügt und der Zähler (j) um eins erhöht. Wenn nicht wird einfach ein Leerzeichen angehängt.
Mehr zu split findest du unter <../../tecl.htm#a23>
Viele Grüße
Antje
Hi,
var Suche = Header1.indexOf (/P/) ;
indexOf() arbeitet _ohne_ Regular Expression. Bitte schau Dir <../../tecl.htm#a14> diesbezüglich noch mal näher an.
»» Suche.replace(/ / ,"
Auch hier sind Regular Expressions fehl am Platz, da replace() nicht weiß, was Du vorher für eine Position ermittelt hast. Arbeite mit substr() und ähnlichen Funktionen.
Cheatah