2011-04-01 3 views
0

안녕, 난 간단한 HTML 페이지, iframe과 localy 있어요. iframe에는 javascript 함수가있는 생성 된 페이지가 포함됩니다. 나는 그 기능을 부르고 싶다. 물론, 나는 "허가가 거부되었습니다." 그래서 인스턴트 메신저 js 및 그 모든 물건을 알고 있기 때문에 실제로 그것을 할 수 있습니다. 검색이나 좋은 솔루션에 대한 힌트를주세요.iframe에서 func에 액세스 중입니다. 로컬로 온라인

나는 다음과 같이 func을 수행합니다. parent.myiframe.myfunc();

답변

1

iframe의 페이지가 다른 서버/도메인에 있다고 생각합니다. 최신 브라우저는 "크로스 사이트 스크립팅"을 허용하지 않습니다. 참조 : http://de.wikipedia.org/wiki/Cross-Site_Scripting

가능하면 iframe의 사이트를 동일한 서버로 이동하십시오. 다른 대안 (일시적인 해결책)은 로컬 서버의 페이지를 프록시하는 것이므로 클라이언트의 경우 동일한 도메인에서로드 된 것으로 보입니다.

편집 : 이것은 "동일 출처 정책"이라고도합니다. 당신이 아니라 문서에 자바 스크립트 함수를 호출 할 수 있습니다 : (! mail.mydomain.com < - 아니 이동) 같은 하위 도메인에서 동일한 도메인 (www.mydomain.com)

  • 에서

    • 둘 다 동일한 포트 (p.Ex. )를 http : * : // 문서가 작동하지 않는 의 http : // ... 문서에 액세스합니다. 당신은 iframe의 소스에 액세스 할 수있는 경우

    다른 해결 방법이있을 수 있습니다 적용하여, 외부 프레임의 같은에 iframe이 도메인을 변경 :

    document.domain = "domain.com"; 
    

    을 iframe이 소스에 (http://ajaxian.com/archives/how-to-make-xmlhttprequest-calls-to-another-server-in-your-domain 참조 자세한 내용은).

    는 또한 이미 부분적으로 여러 브라우저에서 구현되는 "상호 리소스 공유"(http://www.w3.org/TR/cors/)에 대한 초안이, 참조 : http://www.webdavsystem.com/ajax/programming/cross_origin_requests

  • +0

    그래, 물론 그들은 다른 영역에 있습니다. :) 고마워 – xotix

    +0

    기본적으로 iframe의 소스/서버에 대한 액세스 권한이 있는지 여부를 결정합니다. 그렇지 않다면, 당신이 할 수있는 유일한 일이 있습니다 : – BatteryBackupUnit

    +0

    나는 소스 액세스가 없지만 몇 가지 html 블록을 추가 할 수 있습니다. 해당 폴링을 생성하므로 js, html을 추가 할 수 있습니다. 내가 그 document.domain을 시도하고 bevore 그리고 그것은 작동하지 않았지만, 어떻게 html 블록을 구현하는지 모르겠다. – xotix

    관련 문제