Avatar billede Slettet bruger
16. marts 2005 - 16:24 Der er 4 kommentarer og
1 løsning

Tjek om funktion er tilladt

På min hjemmeside bruge jeg frames, og nogen gange kan hovedframen indeholde indhold fra en et andet domæne. Dermed har jeg ikke lov til at bruge parent.main.location.reload() i menuframen. Men hvordan tjekker jeg OM jeg må det? Sådan at jeg bare kan lade være, i stedet for at lave en js fejl.

Følgende virker ikke:

if (!parent.main.location.reload()) {
    alert('ikke lovligt');
}
Avatar billede olebole Juniormester
16. marts 2005 - 16:31 #1
<ole>

Brug en try/catch:

try {
    parent.main.location.reload();
}
catch(e) {
    alert("Ikke lovligt");
}

/mvh
</bole>
Avatar billede olebole Juniormester
16. marts 2005 - 16:33 #2
Du kan evt checke, hvad 'e' indeholder:
    alert("Ikke lovligt.\nFejl: " + e);
Avatar billede barklund Nybegynder
16. marts 2005 - 16:34 #3
Kan du ikke bare teste på, om objektet er tilgængelig:

if (!parent.main.location) {
    alert('ikke lovligt');
}

Jeg ved ikke, om location-objektet er tilgængeligt, hvis man ikke har adgang til det - men kunne forestille mig det.

Hvilken fejl er det nu, du får? At det ikke er en funktion eller at du ikke har tilladelse til den?

--
Morten Barklund
Avatar billede Slettet bruger
16. marts 2005 - 16:54 #4
barklund> der er ingen adgang, hverken ved parent.main.location eller parent.main.location.reload.

olebole> det virkede, takker
Avatar billede olebole Juniormester
16. marts 2005 - 19:56 #5
barklund >> browseren ser det som X-domain-scripting - derfor smides der en fejl, der kun kan fanges i en try/catch  ;o)
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