06. februar 2001 - 20:58 Der er 4 kommentarer og
1 løsning

Access is denied ved innerHTML i IFRAME

Dette script virker perfekt når det er en side på samme domaine, Men ikke når man tager en anden side ind.
Hvem kan løse dette???

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<html>
<head>
    <title>Hesten er fed!!</title>
<script>
    function ShowHTML() {
        alert(hest.document.title);
        alert(hest.document.body.innerHTML);
        alert(hest.document.body.innerText);
    }
</script>
</head>
<body>

<a href=\"java script: ShowHTML();\">Vis mig</a>

<iframe src=\"http://www.ffservice.com/default.asp\" width=\"500\" height=\"500\" id=\"hest\"></iframe>

</body>
</html>

Avatar billede jakoba Nybegynder
06. februar 2001 - 21:17 #1
Det er security der blander sig.
Den side der loades i din iframe kommer fra et andet domæne end den side der indeholder din iframe. Så dit script har forbud imod at kikke på eller påvirke data i dokumentet i innerframen.

mvh JakobA
Avatar billede jakoba Nybegynder
06. februar 2001 - 21:25 #2
I javascript client guide kapitel 14 står der en del om hvordan man opnår ret til at \"kikke ind\" i en fremmed side.
Såvidt jeg kan se kræver det at man har adgang til at ændre i begge sider.
http://developer.netscape.com/docs/manuals/js/client/jsguide/index.htm
06. februar 2001 - 21:48 #3
jakoba>> Som jeg forstår det, så er dette afsnit der er intresant:

Origin Checks and document.domain
There is one exception to the same origin rule. A script can set the value of document.domain to a suffix of the current domain. If it does so, the shorter domain is used for subsequent origin checks. For example, suppose a script in the document at http://www.company.com/dir/other.html executes the following statement:

document.domain = \"company.com\";

After execution of that statement, the page would pass the origin check with http://company.com/dir/page.html.


Men hvordan bruger jeg det i mit eksembel???
Avatar billede jakoba Nybegynder
06. februar 2001 - 22:29 #4
Hvis begge sider loades fra \"ffservice.com\" kan du korte til det (så det er ligegyldigt om der står www foran.

men det skal gøres i begge html-filer, indføj fx i head sektionen:

<script language=\'javascript\'>
document.domain = \"ffservice.com\";
</script>

men der bliver checket. sætningen har ingen effekt på en side loaded fra fx get2net.dk

mvh JakobA
06. februar 2001 - 22:33 #5
jakoba>> Det er også det svar jeg er nået frem til.

Jeg har klaret problemet med en serverkomponent

Tak for oplysningerne;-)

/def
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