"Lasse Hedegaard" skrev
> Claus Schmidt skrev:
> Dvs. man kan ikke få referreren gennem javascript, hvis den side der
> skal finde den ligger i en frame der kaldes?
-ikke gennem *dette* javascript.
> Pas :) Jeg er ganske blank hvad angår javascript.
Jeg er ikke ligefrem selv nogen mester på
området, men jeg vil prøve at forklare hvad
jeg mener:
> >top.document.referrer returnerer null,
-der kan ikke findes en document referrer
til objektet "top".
top er det der er "øverst" i dit vindue, kan
man vel sige. I dette tilfælde er det et
framesæt. Jeg kan ikke huske koden,
men lad os sige at det er den her:
<frameset>
<frame src=
http://fergusons.dk/tjenpenge>
</frameset>
Dette ligger i index.htm, altså i et
*dokument*. Fra dette dokument
kaldes et andet dokument - du har
altså to åbne, men ser kun et, da
det fylder 100% af vinduet.
Så skriver du:
>top.document.referrer
Du har m.a.o. to dokumenter,
åbne og beder om at få vist en
egenskab for *dokumentet*.
Når jeg så skriver:
> >prøv evt. med parent i.st.f. top
-så er det fordi at tingene er organi-
seret sådan at frames er selvstændige
dokumenter, hvor det ene ikke ved
at det andet eksisterer i forbindelse
med javascript.
Ligesom børn. Derfor er det sådan
at browseren i forbindelse med
frames fungerer som "parent".
Det betyder, at hvis du skal hente
noget over fra en frame til en anden, så
skal du via "parent".
Men det jeg skrev vil *ikke* løse problemet.
Du bliver nødt til at specificere, hvilken
en af børnene du vil have fat i.
Før jeg får skrevet en hel roman må jeg
hellere komme til sagen, for jo mere
jeg skriver, jo flere unøjagtigheder vil
der dukke op og så bliver der bare en
lang tråd ud af det...
Det du gør er, at hive fat i den første
frame (dokumentet i....), f.eks. v.hj.a.
parent.frames[0].document
Det kan endda godt være at du bliver
nødt til at skrive:
window.parent.frames[0].document
Som det meste andet i Javascript
er frames nummereret, sådan at
man kan få fat på dem, hvis man ikke
lige har husket at give dem et navn.
Numrene starter altid med 0.
Så skal du have fat i dette dokuments
referrer. Prøv:
parent.frames[0].document.referrer
eller
window.parent.frames[0].document.referrer
-det burde virke.
Til sidst bliver jeg nødt til at skrive at
der er nogle unøjagtigheder i det
ovenstående. JS-objekthierakiet er
ikke ligefrem noget jeg kan udenad,
især da der er forskelle mellem 1.0,
1.1 og 1.2 som jo ikke alle forstås af
alle browsere
(hvorerdetnuviharhørtdetfør...)
-så ret mig endelig hvis der er alvorlige
fejl.
--
[claus]