Avatar billede erikvedel Nybegynder
01. juni 2010 - 12:07 Der er 10 kommentarer

Opdater Iframe fra anden asp fil efter tid

Hej Eksperter.

Jeg ønsker at gøre følgende:

<html>
<head>
<title>test</title>
<script type="text/javascript">
En text/javascript kode der fortæller at nedenstående iframe skal opdateres hvert 2. minut...

</head>
<body>
<iframe id="ScreenContents" src="contents.asp" width="100%" height="100%" marginheight="0" marginwidth="0" scrolling="no"></iframe>
</body>
</html>


Koden til bruges til en infoskærm, som opdateres hvert 2. minut. Lige nu bruger jeg den gode gamle http-equiv="refresh". Problemet er blot, hvis forbindelsen ryger i det tidspunkt hvor den forsøger at opdatere - så vises en fejl side - og skærmen skal opdateres manuelt (F5) for at komme igang igen.

Kan dette lade sig gøre?
Avatar billede keysersoze Guru
01. juni 2010 - 12:29 #1
gennem javascript har du mulighed for at benyttes setTimeout - men den kan du kalde en metode efter de to minutter og metoden skal så bare opdatere iframen og kaldes sig selv igen vha setTimeout.
Avatar billede erikvedel Nybegynder
01. juni 2010 - 12:31 #2
He he he...
Det lyder interessant. Men hvordan gør jeg det? Har lidt styr på javascript - meeen kan desværre ligge på et lille sted...

Har du et eksempel?
Avatar billede erikvedel Nybegynder
01. juni 2010 - 13:00 #3
Denne virker - men kun i IE...
Kan man ikke få den til at virke i Firefox og Chrome???


<script type="text/javascript">
window.onload = function(){
  setInterval("updateIframe()",4000);
}
function updateIframe(){
  window.frames["ScreenContents"].location.reload(true);
}
</script>
Avatar billede keysersoze Guru
01. juni 2010 - 18:16 #4
window.getElementbyId("ScreenContents").location.reload(true);
Avatar billede erikvedel Nybegynder
02. juni 2010 - 14:21 #5
Hmmm den virker ikke ved nogen af dem...?
Den forrige som jeg beskriver, virker i IE og Chrome, men ikke i firefox...??
Avatar billede keysersoze Guru
02. juni 2010 - 18:11 #6
så må du vel næsten få fejlmeldinger?

document.getElementById("ScreenContents").contentWindow.location.reload(true);
Avatar billede erikvedel Nybegynder
03. juni 2010 - 10:17 #7
Jep - nu virker det i alle browsere...

Men så opstår selve problemet: Hvis jeg så eks. afbryder internetforbindelsen, og tilslutter igen - så opdateres siden ikke... Og det var dét jeg gerne ville have. Den har vel loadet selve siden, men forsøger hele tiden at opdatere iframen - uanset om der er forbindelse eller ej?
Avatar billede erikvedel Nybegynder
03. juni 2010 - 10:19 #8
Jep - nu virker det i alle browsere.

Men så opstår det reelle problem: Når forbindelsen afbrydes, så stopper den med at opdatere? Hvilket jeg ikke forstår?

Selve java scriptet køre jo hele tiden? Den skal jo bare loades første gang?
Avatar billede keysersoze Guru
05. juni 2010 - 11:41 #9
En afbrudt forbindelse burde ikke betyde noget men jeg kan selvfølgelig tage fejl - du må først og fremmest lægge mærke til om der opstår en js-fejl og dernæst prøve at debugge fx bare ved at indsætte en alert.

Men jeg er ikke med på hvornår du vil opdatere og ikke vil - du skriver "kode der fortæller at nedenstående iframe skal opdateres hvert 2. minut" og nu skal den kun loades første gang?
Avatar billede keysersoze Guru
27. juni 2010 - 11:24 #10
Kommet videre?
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