Avatar billede webhest Nybegynder
17. januar 2004 - 00:48 Der er 14 kommentarer og
1 løsning

Hjælp til en refresh!

<script>
function opdaterSpan(chatHTML) {
if (document.getElementById) document.getElementById("iespan").innerHTML = chatHTML;
else if (document.all) document.all["iespan"].innerHTML = chatHTML;
else if (document.layers) document["nslayer"].document.write(chatHTML);
}
</script>

Den kode fik jeg af en ven!
Jeg vil godt lige have forklaret hvordan den virker, og hvad jeg skal gøre!
Avatar billede skovenborg Nybegynder
17. januar 2004 - 01:00 #1
det betyder at du har to elementer på en side som hedder:
<span id="iespan"></span><span id="nslayer"></span> (man kan også bruge andre html-tags, bare de har de samme id'er).

Så kan du i javascript sætte noget indhold ind i en af de to <span>-elementer fx:
<body onload="opdaterSpan('Dette er noget tekst');">
Så skulle der gerne stå "Dette er noget tekst" i en af de to span-elementer.
Avatar billede webhest Nybegynder
17. januar 2004 - 01:09 #2
Ok!
Jeg har en side: tekst.html (den side som skal opdateres)
Så har jeg: index.html:
<iframe width="400" height="400" src="tekst.html"></iframe>

Hvad gør jeg så?
Avatar billede skovenborg Nybegynder
17. januar 2004 - 01:14 #3
tjaa, det letteste ville være hvis du flyttede funktionen ind i tekst.html.

Derefter kan du få adgang til den (og opdatere indholdet) i index.html. Hvordan er jo op til dig men her er et lille eksempel:
<body onload="self.sider.opdaterSpan('Her er noget tekst');">
<iframe width="400" height="400" name="sider" src="tekst.html"></iframe>

Det er dog vigtigt at du ikke opdaterer indholdet inden iframen er loadet - derfor vil jeg anbefale at gøre det under en onload event. Læg desuden mærke til at jeg har kaldt iframen for sider, så jeg kan få adgang til den via javascript.
Avatar billede webhest Nybegynder
17. januar 2004 - 01:19 #4
Ok jeg har gjort følgende:
tekst.html:
<script>
function opdaterSpan(chatHTML) {
if (document.getElementById) document.getElementById("iespan").innerHTML = chatHTML;
else if (document.all) document.all["iespan"].innerHTML = chatHTML;
else if (document.layers) document["nslayer"].document.write(chatHTML);
}
</script>

Index.html:

<body bgcolor="#000000">
<body onload="self.sider.opdaterSpan('Her er noget tekst');">
<iframe width="400" height="400" name="sider" src="tekst.html"></iframe>

Men den opdaterer vist ik :S...(er newb til js ska lige siges)
Avatar billede skovenborg Nybegynder
17. januar 2004 - 01:23 #5
ser din tekst.html nogenlunde sådan ud:
<html>
<head>
<script type="text/javascript">
function opdaterSpan(chatHTML) {
if (document.getElementById) document.getElementById("iespan").innerHTML = chatHTML;
else if (document.all) document.all["iespan"].innerHTML = chatHTML;
else if (document.layers) document["nslayer"].document.write(chatHTML);
}
</script>
</head>
<body>
<span id="iespan"></span><span id="nslayer"></span>
</body>
</html>

Desuden skal du ikke have to body-tags. Bare skriv:
<body bgcolor="#000000" onload="self.sider.opdaterSpan('Her er noget tekst');">
Avatar billede skovenborg Nybegynder
17. januar 2004 - 01:24 #6
....i grunden kan det godt være at der skulle stå:
<span id="iespan"></span><layer id="nslayer"></layer>
i stedet.
Avatar billede webhest Nybegynder
17. januar 2004 - 01:25 #7
Fint, nu virker det!
Hvad så hvis jeg vil have den til at opdatere hvert 3. sekund?
Avatar billede skovenborg Nybegynder
17. januar 2004 - 01:41 #8
tjaa, det kommer an på hvad du skal bruge den til. Men her er et eksempel med en meget simpel form for chat:

index.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>CHAT</title>
<script type="text/javascript">
  function opdaterChat()
  {
      val = document.form1.chat.value;
      self.sider.opdaterSpan(nl2br(val));
      window.setTimeout("opdaterChat();",3000);
  }
  function nl2br(str)
  {
    str = str.replace(/\n/ig,"<br />");
    return str;
  }

</script>

</head>
<body onload="opdaterChat()">

<iframe width="500" height="300" name="sider" src="tekst.html"></iframe>
<form name="form1" onsubmit="return false">
<textarea name="chat"></textarea><br />
<input type="text" name="tekst" /><input type="button" value="SEND" onclick="this.form.chat.value += this.form.tekst.value+'\n';this.form.tekst.value='';" />
</form>

</body>
</html>

tekst.html er den samme som før. Tricket ligger i denne sætning:
window.setTimeout("opdaterChat();",3000);
groft sagt opdaterer den funktionen opdaterChat() hvert 3000 millisekund (altså hver 3. sekund).
Avatar billede webhest Nybegynder
17. januar 2004 - 01:49 #9
Mange tak...men jeg har ikke ligefrem noget at bruge
<textarea name="chat"></textarea><br />
til, så kan den på en måde blive klippet væk?
Avatar billede skovenborg Nybegynder
17. januar 2004 - 01:50 #10
nå jeg må hellere se at komme i seng ;-)

Jeg regner dog med du har noget helt bestemt i tankerne vedrørende hvad du vil opdatere i din iframe. Men det må vi taler mere om i morgen - g'nat :-)
Avatar billede skovenborg Nybegynder
17. januar 2004 - 01:53 #11
hvis det kun er dit tekstfelt du vil hente indholdet fra (hvert 3. sekund) kan du gøre sådan:
<script type="text/javascript">
  function opdaterChat()
  {
      val = document.form1.chat.value;
      self.sider.opdaterSpan(val);
      window.setTimeout("opdaterChat();",3000);
  }

</script>

....
<form name="form1" onsubmit="return false">
<input type="text" name="tekst" />
</form>

---men nu må jeg for alvor gå i seng ellers falder jeg nok død om -- eller sådan noget ;-)
Avatar billede webhest Nybegynder
17. januar 2004 - 01:54 #12
Okay så...det samme her hehe..Godnat du ;)
Avatar billede webhest Nybegynder
20. januar 2004 - 21:14 #13
Lukker spg!
Avatar billede webhest Nybegynder
20. januar 2004 - 21:14 #14
da der ingen svar er lagt
Avatar billede skovenborg Nybegynder
20. januar 2004 - 22:08 #15
du bad så heller ikke om ét - men det skal du ikke tænke på ;-)
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