Avatar billede mikkel_breum Nybegynder
12. oktober 2001 - 21:43 Der er 4 kommentarer og
3 løsninger

dynamisk opdatering af tekst

Hejsa

jeg ved hvordan man kan opdatere teksten i et inputfelt via javascript ved at lade en funktion sætte en ny værdi ala: form.inputfelt.value = \"ny tekst\";

Men hvordan kan man gøre det uden at bruge et input felt?
Jeg kan skrive med:
tekstvar = \"Tekst et\";
document.write(tekstvar);

men hvis jeg så opdaterer variablen tekstvar så ændre det jo ikke på hvad der er skrevet ud tidligere.. hvordan kan sådan en dynamisk opdatering af tekstelementer på siden, efter at siden er loaded, opnås?

mvh
Mikkel
Avatar billede blood Nybegynder
12. oktober 2001 - 21:46 #1
<DIV id=\"textfelt\">Din gamle text</DIV>

<script type=\"text/javascript\">
document.all[\'textfelt\'].innerHTML = \'Din nye text\';
</script>
Avatar billede jakoba Nybegynder
12. oktober 2001 - 21:59 #2
Det er forskelligt i IE og NS.

I IE kan du gøre det i næsten ethvert hrml objekt; men det sikreste er at gøre det i en <div

<div id=\'olsen\'>her står noget</div>

så kan du lave et lille java script:
<script language=\'javascript\'>

function lavOmIDiv ( divnavn, tekst ) {
    var gammelTekst = document.all[\'olsen\'].innerHTML;
    var nyTekst = gammelTekst + tekst;
    document.all[\'olsen\'].innerHTML = nyTekst;
};

</script>

I NS mener jeg ikke du kan spørge hvad der stod før. Og for at det skal virke skal du bruge en absolut positioneret <div

<div name=\'olsen\' style=\"position:absolute; top=20; left=55;\">her står noget</div>

den div kan du så skrive i med document.write inden i <div en:

<script language=\'javascript\'>

var original = \"her står noget\";  // husker hvad der står i den div

function lavOmIDiv ( divnavn, tekst ) {
    var gammelTekst = original;
    var nyTekst = gammelTekst + tekst;
    elm = document.layers[\'olsen\'];
    elm.document.open();
    elm.document.write( nyTekst );
    elm.document.close();
    original = nyTekst;
};

</script>

med lidt browsertests kan du slå de to funktioner sammen til en der virker i begge browsere.

mvh JakobA
Avatar billede Slettet bruger
12. oktober 2001 - 22:15 #3
For at følge op på jakoba\'s svar (det er det, jeg lever af!):
<script>
function skiftTekst(obj,nsobj,tekst) {
nyDom = document.getElementById;
ie4 = document.all;
ns4 = document.layers;

if (nyDom) document.getElementById(obj).innerHTML = tekst;
else if (ie4) document.all[obj].innerHTML = tekst;
else if (ns4) document.layers[nsobj].document.write(tekst);
}
</script>

Så kan du fx kalde funktionen sådan her:

<div id=\"ie\"></div>
<layer id=\"ns\"></layer>
<button onClick=\"skrivTekst(\'ie\',\'ns\',\'Her er den nye tekst!\');\">Klik her!</button>
Avatar billede Slettet bruger
12. oktober 2001 - 22:18 #4
Og så har jeg *selvfølgelig* kaldt funktionen forkert. Den hedder \"skiftTekst\" og ikke \"skrivTekst\"! Sorry! Kald den sådan her (fx):
<button onClick=\"skiftTekst(\'ie\',\'ns\',\'Her er den nye tekst!\');\">Klik her!</button>

Du kan se et eksempel af scriptet på http://phoenixv.whitehat.dk/scripts/skifttekst.html
Avatar billede Slettet bruger
12. oktober 2001 - 22:23 #5
Ny href: http://phoenixv.whitehat.dk/js/skifttekst.html
Ville hellere lægge den i en anden mappe :-)
Avatar billede mikkel_breum Nybegynder
13. oktober 2001 - 01:19 #6
Tak for jeres svar. Jeg synes det er ret væsentligt at Jakoba og phoenixv går i dybden med browser kompatibiliteten, så I løber med de fleste point. Tak til blood også.
Avatar billede blood Nybegynder
13. oktober 2001 - 01:28 #7
Takker for points :o)
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