Avatar billede supermand69 Nybegynder
23. juli 2004 - 18:59 Der er 8 kommentarer og
1 løsning

insertRow og insertCell

Hej... jeg har en chat der er lavet i JavaScript :) Den virker som den skal, men vil gerne have den til at tilføje de nye rækker i bunden i stedet for i toppen som den gør nu!

Her er mit script:
<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);

        newCell.innerHTML = a[i+1]+'&nbsp;';
        newCell.className = 'chat_timestamp';

        var newCell = newRow.insertCell(1);
        if(a[i]) newCell.innerHTML = a[i]+' '+a[i+2];
        else
        {
            newCell.innerHTML = '-- '+a[i+2]+' --';
            newCell.className = 'marked';
        }
    }
   
    var numMsgs = tbl.getElementsByTagName('tr').length;
    while(numMsgs > 50)
    {
        tbl.deleteRow(numMsgs-1);
        numMsgs--;
    }
}
</script>

Jeg har lige en ting mere... rækkerne fra ovenstående script bliver så smidt i en <div>... Hvordan kan jeg så gøre således at den altid er scrollet helt i bund? Altså så man kan se den senest skrevede linje i chatten??
Avatar billede supermand69 Nybegynder
23. juli 2004 - 21:26 #1
Min div:

<div class="chat">
<table id="chat">
</table>
</div>
Avatar billede roenving Novice
24. juli 2004 - 09:48 #2
Absolut utestet, men du kan prøve med:

<script type="text/javascript">
function write_to_chat(a){
    var tbl = document.getElementById('chat');
    var numMsgs = tbl.getElementsByTagName('tr').length;
   
    for(i=0; i<a.length; i+=3){
        var newRow = tbl.insertRow(numMsgs);
        var newCell = newRow.insertCell(numMsgs);

        newCell.innerHTML = a[i+1]+'&nbsp;';
        newCell.className = 'chat_timestamp';

        newCell = newRow.insertCell(1);
        if(a[i]) newCell.innerHTML = a[i]+' '+a[i+2];
        else{
            newCell.innerHTML = '-- '+a[i+2]+' --';
            newCell.className = 'marked';
        }
    }
   
    while(numMsgs > 50){
        tbl.deleteRow(0);
        numMsgs--;
    }
}
</script>

-- jeg har ikke den fjerneste anelse om dette vil virke, men du har jo lov til at prøve:

    var divs = document.getElementsByTagName("DIV");
    for(i=0;divs.length>i;i++){
        if(divs[i].className == 'chat'){
            divs[i].scrollTo(0,divs[i].scrollTop);
        }
    }

-- måske skal du til IE bruge newRow.scrollIntoView(true);
Avatar billede supermand69 Nybegynder
24. juli 2004 - 10:07 #3
der er ikke noget af det som virker :(

vil du se noget mere kode??
Avatar billede roenving Novice
24. juli 2004 - 10:11 #4
Hov, dette var jo vrøvl, så det skal tilbage:

        var newCell = newRow.insertCell(0);
Avatar billede supermand69 Nybegynder
24. juli 2004 - 10:16 #5
jeg er ikke helt med? :p
Avatar billede supermand69 Nybegynder
24. juli 2004 - 10:19 #6
nu virker det fint nok... men i det den læser chatten "ind" skriver den dem stadig i den anden rækkefølge, men når man skriver kommmer det godt nok i bunden?
Avatar billede roenving Novice
24. juli 2004 - 10:23 #7
Det lyder som noget du skal ordne i dit database-script !-)

-- og jeg må klart indrømme, at jeg bestemt ikke er ekspert, når vi snakker chats !o]
Avatar billede supermand69 Nybegynder
24. juli 2004 - 10:27 #8
jeg har sat DESC på min query :)

men nu roder den lidt rundt i rækkefølgen hver gang siden opdaterer... hehe...
Avatar billede supermand69 Nybegynder
26. juli 2004 - 13:05 #9
lukker
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger Business Relationship Manager

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger analytisk stærk og erfaren medarbejder i Hvidovre

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Analytiker til Security Operationscenter i Cyberdivisionen Hvidovre