Avatar billede websam Nybegynder
01. maj 2008 - 23:37 Der er 9 kommentarer og
1 løsning

Iframe og side visning

Hejsa,

Når jeg loader en side i en iframe kunne jeg godt tænke mig at vide om men på nogen måde kan finde ud af hvornår siden er færdig med at loade ?

Grunden til dette er at jeg gerne vil vise et loading billede ind til siden er færdig loadet i iframe'en.

/Websam
Avatar billede schaefner Juniormester
02. maj 2008 - 00:03 #1
Er det dit eget indhold du viser iframen?
Avatar billede websam Nybegynder
02. maj 2008 - 07:53 #2
Ja det er mine egne sider
Avatar billede w13 Novice
02. maj 2008 - 10:19 #3
Du kan smide en
  window.onload=function(){
    //kommando som evt. skjuler loadbilledet
  }

ind i IFramens kode.
Og hvis du skal gøre det fra hovedsiden:

  document.getElementById("iframens-id").contentWindow.onload=function(){
    //kommando som evt. skjuler loadbilledet
  }
Avatar billede w13 Novice
02. maj 2008 - 10:45 #4
Så skal kommandoen, som køres, nok indledes med:

parent.document

i stedet for bare:

document

hvis den skal have effekt i hovedvinduet, dvs. uden for IFramet.
Avatar billede websam Nybegynder
02. maj 2008 - 11:03 #5
Ok så fik jeg testet lidt på det og har lavet følgende på hovedsiden :

loadPage : function(divId, frameId url){
    document.getElementById(frameId).src = url;
    var div = document.getElementById(divId);
    div.style.display = "block";
},

onloadPage : function(divId){
    var div = document.getElementById(divId);
    div.style.display = "none";
}

Første metode loader en side i iframe'et og viser et "loading" billede.

Anden metode skjuler billedet igen når siden er loadet.

I min iframe laver jeg så :

<iframe id="myFrame" onload="onloadPage('billedDiv')"></iframe>

Og det virker ganske fint, men når jeg loader en side der køre noget server side kode så bliver den ikke refresh'et i IE hvis jeg loader siden igen, kan jeg på nogen måde nulstille det ?
Avatar billede w13 Novice
02. maj 2008 - 11:04 #6
Hvad mener du med, at den ikke bliver refreshet?
Avatar billede websam Nybegynder
02. maj 2008 - 11:21 #7
Jeg har en række links i en menu hvor loadPage() er sat som href for at loade siderne i iframe'et. Hvis jeg klikker på samme link mere end en gang og indholdet af siden har ændret sig ja så vises ændringerne ikke på siden.

Dette er dog ikke tilfældet for Firefox, Safari eller Opera, det er kun IE7 der åbentbart ikke fatter det
Avatar billede w13 Novice
02. maj 2008 - 11:28 #8
Bruger du ASP eller PHP?
I ASP kan man jo sætte: Response.Expires=-1
for at sikre sig, at indholdet genindlæses med nye ændringer.
Det kan også være, du skal slå det til vha. meta-tags.
Det må jo tydeligvis være noget cachebøvl.
Avatar billede websam Nybegynder
02. maj 2008 - 14:38 #9
Perfetk, jeg fik det til at virke med meta-tags, så smid et svar w13
Avatar billede w13 Novice
02. maj 2008 - 14:54 #10
;)
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

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