Avatar billede mni Nybegynder
13. august 2001 - 09:23 Der er 9 kommentarer og
2 løsninger

Opdatere frames giver fejl

Følgende JavaScript er placeret i headeren, det skal automatisk indlæse en fil i en anden frame(footer).

<SCRIPT language=\"javascript\">
parent.footer.location.href=\"../footer/footer.asp?id=<%= docid%>\"
</SCRIPT>

I et simpelt \"miljø\" fungerer scriptet fint, men når jeg sætter det ind i det rigtige \"miljø\" kommer der følgende fejl:

Fejl: \'parent.footer.location\' er ikke et objekt
Avatar billede setien Nybegynder
13. august 2001 - 09:25 #1
erstat det med :
<SCRIPT language=\"javascript\">
window.onload = function() {parent.footer.location.href=\"../footer/footer.asp?id=<%= docid%>\";
}
</SCRIPT>

så skulle det virke.
Hvis det ikke virker, så skal det rykkes ud i selve frameset dokumentet.
Avatar billede setien Nybegynder
13. august 2001 - 09:26 #2
Problemet er at den prøver at afvikle koden inden dit dokument er loadet ind, og den frame du referer til rent faktisk er oprettet.
Hvis du venter til framesettet er loadet, så er den frame med sikkerhed oprettet.
Avatar billede mni Nybegynder
13. august 2001 - 09:44 #3
Dit forslag med \"window.onload\" virker i det simple \"miljø\", men stadig får jeg samme fejl i det rigtige miljø (som er noget mere kompliceret).

At rykke det ud i framsettet (i headeren) havde ingen effekt. Hvor skal det så stå i koden?
Avatar billede setien Nybegynder
13. august 2001 - 09:48 #4
ah... der er et problem med pathen til frames - det skal stadig stå i headeren, men der skal stå :
<SCRIPT language=\"javascript\">
window.onload = function() {document.footer.location.href=\"../footer/footer.asp?id=<%= docid%>\";
}
</SCRIPT>
Avatar billede mni Nybegynder
13. august 2001 - 10:39 #5
Når jeg står inde i framesettet, kalder jeg fra menu-framet en fil der skal loade i main-frame. Mainframe-filen indeholder JavaScriptet, der skal indlæse \"footer.asp?id=7\" i footer-frame.
At placere scriptet i framesettet løser desværre ikke problemet.
Samme fejl. Id når aldrig til footer-framet.
Avatar billede roenving Novice
13. august 2001 - 13:21 #6
Kan du da ikke aktivere det fra

<Body ... onLoad=\'top.footer.location.href=\"../footer/footer.asp?id=<%= docid%>\"\'>

og så gøre det i dit frameset-dokument -- det burde sikre at alle andre objekter er initialiseret, da onLoad forekommer *efter* at dokumentet er loadet.

hth
jes
Avatar billede mni Nybegynder
13. august 2001 - 13:26 #7
Jeg ville gerne have brugt \"onload\", men jeg har desværre ikke adgang til <body>. Ellers tak :)

Avatar billede setien Nybegynder
13. august 2001 - 13:59 #8
aaah! Så er det derfor det ikke virker.

MNI : window.onload = function() {blabla;} er det samme som <body onload=\"blabla;\">

Avatar billede setien Nybegynder
13. august 2001 - 14:01 #9
alternativt kan du bruge en lidt lam løsning :

var test = function() {document.footer.location.href=\"../footer/footer.asp?id=<%= docid%>\";
}

setTimeOut(test, 500);

Men det virker ikke 100% sikkert, da det vil fejle hvis man er over 500 msec om at hente hele siden.
Avatar billede mni Nybegynder
13. august 2001 - 16:43 #10
setien: Det er måske heller ikke lige den allerbedste løsning med din TimeOut, for hvis man nu sidder med en sløv forbindelse ... :-(
Men du sagde jo også, at den var lidt lam :-)
Avatar billede mni Nybegynder
30. august 2001 - 12:42 #11
Tak for indsatsen, jeg fandt desværre aldrig nogen løsning!
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