Avatar billede elster Nybegynder
22. august 2001 - 20:38 Der er 13 kommentarer og
1 løsning

Hent addresse på øverste frame

Hej,

Jeg vil gerne hente addressen på den øverste frame fra mit document, så jeg kan checke hvor fra mit document bliver framet (bemærk: documentet må gerne frames, men jeg skal vide hvor fra det bliver framet).

Jeg kan sagtens ændre addressen på den øverste frame, f.eks.:
top.location.href = \"http://www.minserver.dk/\";

Men jeg kan ikke få fat i addressen på den øverste frame. Jeg har både prøvet:
alert(top.location.href); og
alert(top.location);

Men i begge tilfælde viser alert-boksen blot: \"[object]\"? Hva\' f..... foregår der?

På forhånd tak.
Avatar billede jakoba Nybegynder
22. august 2001 - 20:43 #1
Jeg synest også
    alert( top.location.href );
burde virke.
Prøv evt:
    alert( top.location.href.toString() )

mvh JakobA
Avatar billede jakoba Nybegynder
22. august 2001 - 20:45 #2
eller evt: (næsten det samme)
    alert( \"Top frameset er: \" +top.location.href );
Avatar billede elster Nybegynder
22. august 2001 - 20:58 #3
Jeg prøvede begge dine foreslag men igen af dem virkede. Det var faktisk heller ikke helt rigtigt det jeg skrev.. Når jeg bruger:

alert(top.location.href);
Får jeg en javascript fejl der siger: \"Adgang nægtet\".

Og når jeg bruger:
alert(top.location);
Viser alert-boksen bare: \"[object]\", som jeg skrev før.

Jeg prøvede også lige:
alert(top.location.toString());

Men her kom der også en \"Adgang nægtet\" fejl.
Avatar billede roenving Novice
22. august 2001 - 21:04 #4
;-[
Så tror jeg du skal have fat i en rigtig hacker, det betyder formentlig, at du overtræder sikkerhedsmodellen :·|
Avatar billede jakoba Nybegynder
22. august 2001 - 21:05 #5
Det ligner en helt anden fejl. Den med at javascript ikke må sende data fra et domæne til et andet.

kan det passe at den øverste frameset fil, og den fil hvor dit javascript er defineret kommer fra 2 forskellige domæner?

Så skal du have extraordinære privilegier for at få lov til at flytte data imellem de 2 sider. Det kan du få med et signeret script, men det er rimeligt dyrt at få en signatur så du kan signe.

mvh JakobA
Avatar billede jakoba Nybegynder
22. august 2001 - 21:12 #6
en rimeligt nem ting du kan gøre er at give dine rammer et identificerende navn i framesettet

<framset ... >
  <frame name=\"domaeneA_dk_mappex_mappey_filnavn_extension\"
        src=\"http://domaeneB.dk/rammefil.html\">
  <frame ... >
</frameset>

i filen rammefil.html fra det andet domæne kan du så aflæse navnet i
  window.name

men det kræver altså at du kan modificer i begge filer.

mvh JakobA
Avatar billede elster Nybegynder
22. august 2001 - 21:14 #7
Jeps, dokumentet og den øverste frame ligger på to forskellige domæner. Det undrer mig bare at det så er tilladt udskifte addressen i den øverste frame... Men ok, det er der så ikke noget at gøre ved.

mvh elster
Avatar billede olebole Juniormester
23. august 2001 - 02:52 #8
<ole>
Har du adgang til PHP?
/mvh
</bole>
Avatar billede otis Nybegynder
23. august 2001 - 04:24 #9
jeg er ikke klog i javascript, men hva med
<script>alert(location.host);</script>
Avatar billede elster Nybegynder
23. august 2001 - 13:43 #10
olebole> jeg har adgang til ASP.
Avatar billede elster Nybegynder
23. august 2001 - 13:51 #11
JakobA> Jeg håber på at der dukker en lidt mere sikker løsning op, da enhver der giver deres frame dette navn, vil kunne frame dokumentet.
Avatar billede elster Nybegynder
23. august 2001 - 13:57 #12
otis> alert(location.host); kan sikkert godt lade sig gøre, men alert(top.location.host); kan ikke lade sig gøre i dette tilfælde.
Avatar billede jakoba Nybegynder
23. august 2001 - 14:37 #13
Altså: du vil have din side fra domaeneB til at nægte at lægge sig i eller virke i andre framesets end netop dem der kommer fra domaeneA.

Hvis pengene er til det vil jeg sige at det er netop den situation signed scripts eksisterer for at løse.

se: http://developer.netscape.com/docs/manuals/js/client/jsguide/index.htm
om sevurity og signed scripts.

mvh JakobA
Avatar billede elster Nybegynder
23. august 2001 - 17:53 #14
Ok JakobA, jeg bruger din løsning med at navn-give framen. Det er nok det tæteste jeg kommer uden signed scripts.

Så tak for hjælpen,
elster
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