Avatar billede sprocket Nybegynder
27. august 2002 - 14:24 Der er 20 kommentarer og
1 løsning

Hvordan....

Får jeg dette kode til at skrive i iframe'en i stedet?

<input onclick="writeln('1');" type="radio" name="r1" checked><br>
<input onclick="writeln('2');" type="radio" name="r1"><br>
<iframe name="message" width="100" height="100" scr="" frameborder="0">
Avatar billede Slettet bruger
27. august 2002 - 14:26 #1
<input onclick="document.message.document.writeln('1');" type="radio" name="r1" checked>
Avatar billede sprocket Nybegynder
27. august 2002 - 14:31 #2
OK hvordan får jeg den til at slette 'Message' først?
Avatar billede Slettet bruger
27. august 2002 - 14:32 #3
Hvad mener du?
Avatar billede sprocket Nybegynder
27. august 2002 - 14:33 #4
Slette indholdet af message.

Som den fungerer nu tilføjer den bare til teksten. F.eks

1 2 2 1
Avatar billede Slettet bruger
27. august 2002 - 14:34 #5
Det burde den ikke gøre. Prøv:

<input onclick="document.message.document.write('1');" type="radio" name="r1" checked>
Avatar billede sprocket Nybegynder
27. august 2002 - 14:35 #6
Det før den fortsat ikke
Avatar billede Slettet bruger
27. august 2002 - 14:38 #7
Hvad så med:

<input onclick="document.message.document.open('replace'); document.message.document.write('1'); document.message.document.close();" type="radio" name="r1" checked>

Du må forresten gerne smide et link. Jeg vil iagttage fænomenet med mine egne øjne! :)
Avatar billede Slettet bruger
27. august 2002 - 14:38 #8
Skal det virke i andre browsere end IE4+ og NS6+?
Avatar billede sprocket Nybegynder
27. august 2002 - 14:39 #9
nej
Avatar billede Slettet bruger
27. august 2002 - 14:41 #10
Du behøver ikke smide et link. Jeg har testet min kommentar fra kl. 14:38:04 til at virke.
Avatar billede sprocket Nybegynder
27. august 2002 - 14:42 #11
Thanx
Avatar billede Slettet bruger
27. august 2002 - 14:44 #12
Men NS er ikke så glad for det... Behøver det være en iframe, der bruges? Hvad nu, hvis det er en div, som man skriver til?
Avatar billede sprocket Nybegynder
27. august 2002 - 14:45 #13
div?
Avatar billede sprocket Nybegynder
27. august 2002 - 14:48 #14
Jeg skal egentlig bare bruge noget tekst som skifter på siden afhængig af hvilken radio man vælger
Avatar billede Slettet bruger
27. august 2002 - 14:50 #15
Et lag.
Prøv at sætte dette i <head>:

<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 dette i <body>:

<form>
<input type="radio" name="r1" value="1" checked onClick="skriv('1');"><br>
<input type="radio" name="r1" value="2" checked onClick="skriv('2');">
</form>
<br><br>
<div id="minDiv"><layer id="minLayer">
1
</layer></div>
Avatar billede Slettet bruger
27. august 2002 - 14:50 #16
Dette skulle meget gerne virke i IE4+ og NS4+. Og så slipper du for problemer med frames osv.
Avatar billede Slettet bruger
27. august 2002 - 14:56 #17
Hov, den anden radio-knap skal selvfølgelig ikke være checked.
Avatar billede sprocket Nybegynder
27. august 2002 - 14:57 #18
Kanon mange tak:)
Avatar billede sprocket Nybegynder
27. august 2002 - 15:24 #19
Kan du kort beskrive hvorfor der skal være de 2 else if?
Avatar billede Slettet bruger
27. august 2002 - 21:44 #20
Tja... Kort er et relativt begreb! :)

I funktionen "skriv" får jeg tilført én parameter, nemlig den tekst, der skal skrives i laget.
Derefter tjekker jeg, om browseren kender metoden document.getElementById (det gør IE5+, NS6+ og de senere versioner af Opera). Hvis den gør det, så skal den finde objektet med id'en "minDiv" og skrive førnævnte tekst i den. Alt andet inden i div'en bliver overskrevet.
Hvis den første betingelse ikke er sand tjekker jeg videre, om browseren så forstår document.all. Kun IE4 vil passere denne tekst. Den browser har en lidt anden måde at finde objekter på, men denne metode kan også bruges i senere versioner. document.getElementById er bare standard, så det holder jeg mig til.
Hvis ingen af de førnævnte to tests er sande, tjekker jeg for, om browseren kender document.layers, hvilket den vil gøre, hvis vi taler om NS4. Her er proceduren anderledes end i IE4+ og NS6+. For det første forstår NS4 ikke <div>-tagget, så det kan vi ikke skrive til. Men det forstår <layer>-tagget. Det er bare ikke lovligt at skrive til laget vha. innerHTML, så derfor skal man bruge document.write på laget. Herved bliver alt i laget overskrevet, præcis ligesom i de andre tests.
Hvis ingen af testene er succesfulde, hvilket de kun vil være for en bagatel af alle brugere, sker der simpelthen intet. Man kunne vælge at tilføje:

else
alert("Du bruger en for gammel browser. Opdatér den.");

... til sidst for at advare brugeren om den livsfare, han svæver i!

Var det kort nok? :)
Avatar billede sprocket Nybegynder
28. august 2002 - 10:27 #21
Det var perfekt:)
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