substr() funktioniert so nicht :(
olli
- javascript
Hi Leute,
ich sitze grad an meiner ajax-shoutbox und hab nen kleines problem.
um alle texte in dieser bos anzuzeigen, lasse ich das innerhtml immer einander anfügen... aber irgendwann ist der text so lang, dass es total unschön wird... also wollte ich den inhalt einer variable (string) einfach kürzen....
wenn ich das aber so mache wie hier: dann läufts nicht mehr richtig.
verbinden und kürzen geht natürlich auch nicht
wenn ich den bereich mit substr() rausnehme, läuft alles wunderbar.
bis der text länger wird... :(
kann mir da jemand helfen ?
gruss aus berlin,
Olli
info : intervall = alle 4 sek.
function loadData()
{
if (xmlHttp)
{
xmlHttp.open('GET', 'chat_output.php?content=".$content."&language=".$language."&last_msg=".$_SESSION['msg_id']."', true);
xmlHttp.onreadystatechange = function ()
{
if (xmlHttp.readyState == 4)
{
var inhalt_alt = document.getElementById('asb_content').innerHTML;
var inhalt_neu = xmlHttp.responseText;
var inhalt_alt2 = inhalt_alt.substr(0,5);
document.getElementById('asb_content').innerHTML = inhalt_alt2 + inhalt_neu;
chatscroll();
}
};
xmlHttp.send(null);
}
}
Moin!
Wenn ich das richtig seute, dann schneidest Du immer die ersten 5 Zeichen des alten Strings. Was funktioniert denn da nicht? Ich denke, Du wolltest die letzten 5 abschneiden, oder? Das wälre dann aber x.substr(x.length-5)
-- Skeeve
Moin!
Wenn ich das richtig seute, dann schneidest Du immer die ersten 5 Zeichen des alten Strings. Was funktioniert denn da nicht? Ich denke, Du wolltest die letzten 5 abschneiden, oder? Das wälre dann aber x.substr(x.length-5)
-- Skeeve
Hi Skeeve,
naja... ich dachte mir das auch so...
aber dieses ajax-script hat tücken... bzw besteht es aus elementen mit denen ich noch nie zu tun hatte...
und scheinbar kann man in dieser innerHTML aktion keine strings manipulieren, ohne das dieses script ausflippt :)
außerdem ist dabei ein weiteres problem aufgetreten.. ich kann die strings nicht ohne weiteres kürzen... denn diese bestehen auch aus html-tags... und dies würden ja dann sicher öfter zerrissen werden...
und das geht ja nun wirklich nicht ;)
hab halt nicht viel erfahrung mit jacascript.
aber das soll sich ja ändern :)
n'abend,
ich sitze grad an meiner ajax-shoutbox und hab nen kleines problem.
um alle texte in dieser bos anzuzeigen, lasse ich das innerhtml immer einander anfügen... aber irgendwann ist der text so lang, dass es total unschön wird... also wollte ich den inhalt einer variable (string) einfach kürzen....
vielleicht willst auch einfach deinen Ansatz überdenken.
Möglich wäre beispielsweise folgendes:
1. Neue Nachrichten in ein <p> hängen
2. <p> in deinen Shoutbox-Container hängen
3. wenn Anzahl von <p> größer als 20, entferne erstes <p>
(Nodes, Nodes erstellen, weitere Infos findest du, wenn du nach DOM suchst)
Auf diese Weise würdes du dir mögliche Hampelei mit HTML ersparen. Denn dein beispiel Code macht nichts anderes als
1. alten inhalt holen
2. neuen inhalt holen
3. erste fünf zeichen des alten inhalt zusammen mit neuem inhalt zurückschreiben
solltest du in deinen inhalten (ob alt oder neu ist irrelevant) HTML-Tags haben, wirst du mit substr() höchst wahrscheinlich einfach nur kaputtes HTML bekommen.
weiterhin schönen abend...
solltest du in deinen inhalten (ob alt oder neu ist irrelevant) HTML-Tags haben, wirst du mit substr() höchst wahrscheinlich einfach nur kaputtes HTML bekommen.
weiterhin schönen abend...
Hallo,
danke erst mal für den guten Hinweis.
was ich oben zitiert habe von dir, ist mir auch schon aufgefallen,
da es sich bei meinen daten ja nicht nur um text handelt...
sondern jede user-ausgabe liegt ja in nem table tag
um das ganze also "anständig" zu schreiben, muß ich also diese NODE variante einsetzen ?
n'abend,
um das ganze also "anständig" zu schreiben, muß ich also diese NODE variante einsetzen ?
um das anständig anzuwenden solltest du hier mal ein wenig nach DOM manipulation suchen. Und für was brauchst du die Tabellen? hast du tabellarische Daten, oder bist du dem Irrtum verfallen, dass man Tabellen zu einfachem Layouting missbrauchen soll?
weiterhin schönen abend...
um das anständig anzuwenden solltest du hier mal ein wenig nach DOM manipulation suchen. Und für was brauchst du die Tabellen? hast du tabellarische Daten, oder bist du dem Irrtum verfallen, dass man Tabellen zu einfachem Layouting missbrauchen soll?
hi Globe...
ja, das stimmt so erst einmal... ich nutze die tabelle zum layouting.
derzeit jedenfalls... mit divtags oder ähnlichen zu arbeiten wäre zwar moderner, aber tables gegen divtags zu tauschen mach ich meist erst bei der optimierung...wenn überhaupt... kann ich mir einach nicht angewöhnen :) ... brauch immer so viele stylesheets ...
und wegen deinem hinweis... okay... dom manipulation....
... da muss ich wohl ganz von vorne anfangen... ich kenne den begriff zwar von der arbeit, hatte damit abernoch nie kontakt...
und dann gleich bei manipulation einsteigen führt wohl siche rnicht zum erfolg... oder ist die sache kurz ?
sofern ich die anwendung verstehe....
n'abend,
und wegen deinem hinweis... okay... dom manipulation....
... da muss ich wohl ganz von vorne anfangen... ich kenne den begriff zwar von der arbeit, hatte damit abernoch nie kontakt...
und dann gleich bei manipulation einsteigen führt wohl siche rnicht zum erfolg... oder ist die sache kurz ?
lies dich in DOM (Document Object Model) ein. Wenn du weitere Fragen dazu hast, kannst du sie hier jederzeit stellen. Im DOM rumbasteln nennt man nunmal den DOM manipulieren
weiterhin schönen abend...