[JS] Dodawanie tekstu...

0

Otóż chciałbym poprosić was forumowiczów o pomoc w stworzeniu skryptu, który działałby następująco.

Mamy jedną linijkę tekstu:

QWE

Po 3 sekundach do QWE jest dopisywana linijka ASD:

QWE
ASD

Po 6 sekundach (3 sekundy po "asd"):

QWE
ASD
ZXC

Całkiem nie wiem jak się do tego zabrać. Prosiłbym o szybką odpowiedź. Z góry dziękuje i proszę nie pisać postów typu "jak nie wiesz to nie rób", bo to nic nie wnosi do tematu ani nie pomaga. Pozdrawiam.

0

proszę bardzo :D

<body><script>(function(t,d,f){d=document.getElementsByTagName('body');
d[d.length-1].innerHTML+=t.shift()+'<br/>';if(t.length){f=arguments.callee;
setTimeout(function(){f(t)},3000)}})(['QWE','ASD','ZXC']);</script></body>

// respekt :D - n

0

Nieźle, piechnat :-)
To ja trochę poprawię i wytłumaczę, żeby jaśniej było :P

<body><script>
// funkcja anonimowa, bez określonej nazwy
// na początku wywołanie z jednym argumentem tablicą (t) - ['QWE','ASD','ZXC']
// zmienne d,f są puste
(function(t,d,f) {
    // do zmiennej d przypisz wszystkie tagi <body> znalezione w dokumencie
    d=document.getElementsByTagName('body');

    // wnętrze HTML ostatniego tagu body ( który będzie też pierwszym )
    // t.shift() zwróci pierwszy element tablicy, jednocześnie go z tej tablicy usuwając
    d[d.length-1].innerHTML += t.shift() + '<br/>';

    // jeśli jeszcze są elementy w tablicy t ( t.length różne od zera )
    if(t.length) {
        // do zmiennej f przypisz aktualnie wywołaną funkcję
        f=arguments.callee;
        // i wywołaj ją po 3 sekundach ( 3000 milisekund )
        // jedynym parametrem jest tablica, z której już wcześniej usunięto pierwszy element
        setTimeout(function(){f(t)}, 3000)
    }

    // i tyle :P
})(['QWE','ASD','ZXC']);
</script>
</body>

1 użytkowników online, w tym zalogowanych: 0, gości: 1