02. august 2004 - 16:52Der er
30 kommentarer og 1 løsning
chat med insertRow
Jeg har en chat hvor den tilføjer seneste beskeder i toppen af min table, men vil gerne have lavet så den tilføjer i bunden. Tablen med chatten er i en div, som så automatisk selv skal scrolle i bund så snart der kommer en ny besked :)
Hvordan kan det lade sig gøre? Her er min kode: <script type="text/javascript"> function write_to_chat(a) { var tbl = document.getElementById('chat');
for(i=0; i<a.length; i+=3) { var newRow = tbl.insertRow(0); var newCell = newRow.insertCell(0);
hmm... havde åbenbart lavet en lille fejl i min sql query :) så det ser ud til at virke nu...
ang. det med scrollIntoView()
kan man ikke gøre sådan at den ikke scroller helt i bund hver gang man scroller lidt op? altså hvis man lige vil scrolle lidt tilbage for at se hvad der er blevet skrevet.. kan man ikke gøre sådan at den kun scroller ned til den sidste linje hvis den allerede er i bund??
Det er ret mystisk, for det virker i mine tests, selvom de dog er udført på et lidt mere simpelt basis. Jeg har jo ikke så gode muligheder for at teste med chat og det hele.
Giver det script, jeg har foreslået, en fejlmelding, eller sker der bare ikke noget?
Hvis sidstnævnte er tilfældet, så prøv at give den div, der omkranser "chat"-tabellen, en id og indsæt derefter følgende linje sidst i din funktion:
alert(tbl.parentElement.id);
Læg mærke til, om funktionen alerter den rigtige id. Husk også at prøve med offsetParent i stedet for parentElement.
Når man logger ind på chatten er der ikke nogen scrollbar ude i siden. Men lige i det der er ved at være så mange beskeder, at den kommer frem, og man skriver en masse beskeder hurtigt efter hinanden. Så den ikke kan nå at opdaterer, scroller den ikke i bund...
Synes godt om
Slettet bruger
18. august 2004 - 16:39#21
Jeg har virkelig dårlige tid i øjeblikket, men jeg skal nok se på det i weekenden.
Her har jeg lige en lille opsamling på noget der skal rettes, hvis altså det kan lade sig gøre :)
1. Hvis man skriver en besked, som fylder mere end en linje, scroller den kun ned til den øverste linje... Altså man kan ikke se hele teksten og man må selv scrolle ned
2. Hvis beskederne bliver skrevet for hurtigt efter hinanden stopper den helt med at scrolle ned
3. Lige når man logger ind skal den automatisk scrolle i bund
Det er ikke noget der haster med at blive lavet, men ville stadig være fedt nok hvis der heller ikke gik alt for lang tid ;)
Synes godt om
Slettet bruger
22. august 2004 - 16:32#24
Nu er nr. 1 i hvert fald klaret, samtidig med at scriptet nu også virker i Netscape (Opera vil ikke sluge den):
var tbl = document.getElementById('chat');
for(i=0; i<a.length; i+=3) { var newRow = tbl.insertRow(tbl.getElementsByTagName('tr').length); var newCell = newRow.insertCell(0);
Hvordan kan man få den div som flyver over det andet til at have den rigtige position fra starten? Den hopper først ned på plads når hele siden er loaded!
Jeg skal nok oprette et nyt spm med 60 points hvis du kan lave det :)
- specielt hvis der kommer mange beskeder på en gang...
Synes godt om
Slettet bruger
03. oktober 2004 - 13:05#29
Jeg rodede lige mine gamle mails igennem og fandt dette uafsluttede spørgsmål. Jeg har desværre ikke tid til at rette det til, og for at være helt ærlig, tror jeg ikke, den teknik, som din chat gør brug af, er særlig optimal. Jeg kan anbefale dig at søge efter "Olebole chat" her på Eksperten. Det er en gennemtestet chat, som en af Ekspertens legender, Olebole, har kreeret og lagt ud til frit brug.
Håber ikke min passivitet har betydet for mange hovedbrud! :)
jeg er også gået lidt fra at chatten skal skrive ned af og har lavet det om som det var før... :)
det er faktisk en chat olebole har lavet, men har bare ændret lidt i den ;)
jeg ved så bare ikke om han har udviklet en nyere og forbedret version af den...
du får points alligevel ;)
Synes godt om
Slettet bruger
05. oktober 2004 - 13:01#31
Tak, men det behøvede du ikke. :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.