Avatar billede lightbrain Nybegynder
03. juni 2002 - 22:23 Der er 6 kommentarer og
3 løsninger

Udskriv simpel tekst

Hej

Jeg har et script, som lytter efter om der et klikket på bestemte knapper. For at gøre det hele meget enkelt kan vi sige, at hvis "knap1" bliver aktiveret, skal den
skriv "knap 1 er blevet aktiveret", osv. med knap2.

Det, som er mit spørgsmå, er, hvad skriver man for at scriptet kan skrive en besked ud på skærmen (ikke alert). Hvis jeg f.eks. skriver...

document.write("knap 1 er blevet aktiveret");

... sletter/renser den hele skræmbillet (med knapper og det hele), hvilket ikke er meningen. Teksten skal i stedet komme til syne f.eks. under den aktiverede knap.

Hvordan kan det lade sig gøre? (Og jeg er ikke interesseret i asp-løsninger)
Avatar billede lequet Nybegynder
03. juni 2002 - 22:26 #1
function skrivNoget(knap) {
  document.getElementByID("besked").innerHTML = "Knap " + knap + " er blevet aktiveret") ;
}

og så på dine knapper :

onClick="skrivNoget(1)" //For knap 1

Og så et div tag der hvor beskeden skal skrives

<div id="besked"></div>
Avatar billede lequet Nybegynder
03. juni 2002 - 22:27 #2
Hov glemte at sige at den metode kun virker i nogle browsere, helt præcist hvilke ved jeg desværre ikke.
Avatar billede mik789 Nybegynder
04. juni 2002 - 08:36 #3
lequet> getElementById() virker kun i DOM ('Document Object Model') kompatible browsere. Jeg tror det er IE5+ og NS6+
Avatar billede mik789 Nybegynder
04. juni 2002 - 08:55 #4
<script type="text/javascript">
function skrivTilDiv(dinTekst) {
  var minDiv=document.getElementById('dinDivID');
  minDiv.innerHTML=dinTekst;
}
</script>

men der er nogen lunde de samme begrænsninger med innerHTML som med getElementById() - det virker kun i de nyeste browsere
Avatar billede lequet Nybegynder
04. juni 2002 - 09:27 #5
mik789 >> Jep, I know... DOM er understøttet i IE 5+ og Mozilla baserede browsere, altså Mozilla selv og NS 6, Opera 5+ MENER jeg også det virker i, men jeg tør dog ikke at garantere det.

innerHTML er i hvert fald understøttet af IE 5+ samt Mozilla og dermed også NS 6, om Opera så kan følge med ved jeg ikke, men NS 4x kan i hvert fald ikke.

Ellers skal man bruge et text felt :

<input type="text" name="besked" readonly style="border:none;background-color:white;">

Og så min før nævnte funktion, omskrevet til :

function skrivNoget(knap) {
  document.besked.value = "Knap " + knap + " er blevet aktiveret") ;
}

Eller noget tilsvarende :)
Avatar billede Slettet bruger
04. juni 2002 - 16:12 #6
Sådan her for at gøre det helt crossbrowser (IE4+, NS4+ og måske Opera):

<script>
function skriv(txt) {
if (document.getElementById) document.getElementById("minDiv").innerHTML = txt;
else if (document.all) document.all.minDiv.innerHTML = txt;
else if (document.layers) document.minLayer.document.write(txt);
}
</script>

Og så der hvor teksten skal stå:

<div id="minDiv"><layer id="minLayer"></layer></div>

Kaldes fx med:

<a href="#" onClick="skriv('Hund'); return false;">Skriv "Hund"!</a>
Avatar billede lightbrain Nybegynder
04. juni 2002 - 17:01 #7
Jeg valgte phoenixvs kode, da det er helt crossbrowser-orienteret, men da jeg gerne vil vælge en bestemt font til det tekst, som skal udskrives på skærmen, skrev jeg følgende:

else if (document.layers) document.minLayer.document.write("<font face='Trebuchet MS'>" + txt + "</font>");

Men desværre forbliver teksten i den samme font, dvs. standartfonten. Hvorfor?
Avatar billede Slettet bruger
05. juni 2002 - 22:06 #8
Det er vel formentlig fordi du ikke har skrevet det alle stederne:

<script>
function skriv(txt) {
txt = "<font face='Trebuchet MS'>" + txt + "</font>";
if (document.getElementById) document.getElementById("minDiv").innerHTML = txt;
else if (document.all) document.all.minDiv.innerHTML = txt;
else if (document.layers) document.minLayer.document.write(txt);
}
</script>

Så skulle det vist gerne virke...
Det, du skrev, burde dog også fungere i NS4, men KUN i den browser!
Avatar billede lightbrain Nybegynder
05. juni 2002 - 22:12 #9
Det virker. Mange tak for hjælpen til jer alle :-)
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