2010-12-22 6 views
1

몇 년 동안 잘 작동해온 iframe 기반 온라인 도움말 시스템이 있습니다. IE8에서는 location.toString()을 호출하는 javascript 중 일부를 질식시킵니다. 이 동일한 코드는 IE6에서 정상적으로 작동합니다.iframe에서 교차 도메인 통신을 사용하는 방법은 무엇입니까?

특히, 코드는 다음과 같습니다

var iss = parent.left.location.toString(); 
var isInd = iss.indexOf("indexframe"); 

내가 오류를 "권한이 거부"얻는다. 문제는 도메인 간 통신과 관련이 있다고 생각합니다. 나는 완전히 이해하고 있는지 확신 할 수 없습니다. 전체 패키지는 로컬 HTML 및 javascript 파일을 사용하여 로컬로 실행됩니다. 한 도메인의 프레임을 다른 도메인의 프레임을 제어하려고하지 않습니다. 아니면 내가 이것이 문제라고 가정 할 때 근거가없는 것일 수도 있습니다.

누군가이 문제를 해결하기 위해 내가해야 할 일을 이해하도록 도와 줄 수 있습니까? iframe이 부모의 문서가 같은 도메인에있는 경우

var f = document.getElementById('IdOfIFrame'), 
    d = f.contentDocument||f.contentWindow; 
alert(d.location); 

답변

1

다음 그 오류가 안 : 다른은 iframe의 내용에 액세스 할 때

+0

예. 이것은 나를 괴롭히는 것입니다. 나는 로컬에서 전체 shebang을 실행하고 모든 파일은 로컬입니다. Internet Explorer 8이 다른 도메인에서 실행되는 것으로 보이는 이유를 이해할 수 없습니다. –

+0

로컬 러닝? "file : //"에서와 같이? 아니, 그건 효과가 없을거야. IE는 로컬에서 실행되는 파일에 대해 완전히 다른 보안 제한 사항을 가지고 있습니다. 웹 서버를 통과하고 http : // try IIS express 또는 cassini를 실행해야합니다 –

+0

잘 모르겠습니다. 모든 HTML 도움말 파일이 iFrame에서 로컬로 실행되는 도움말 시스템을 만들 수없는 이유는 무엇입니까? 왼쪽 패널은 오른쪽 패널에서 올바른 HTML 파일을 열도록하는 목차입니다. 그것은 WinXP에서 IE6에서 잘 작동했습니다. –

1

일반적으로, 나는이 같은 것을 사용합니다. 문서가 다른 영역에 있음을 나에게 알립니다.

Iframe에이 www.mydomain.com에 있고 문서가 당신이 오류가 발생합니다help.mydomain.com을 인 경우! 페이지는 정확히 동일한 도메인에 있다고 생각해야합니다.

두 문서에서 당신은 자바 스크립트 설정을 도메인을 추가 할 수 있습니다

document.domain = "mydomain.com"; 

자바 스크립트가 당신이 두 페이지에 호스트 도메인에 드롭 할 수 있습니다. 이렇게하면 프레임 전체에서 통신 할 수 있습니다. 물론 페이지가 다른 호스트 도메인에있는 경우이 작동하지 않고 javascript가 오류를 발생시킵니다.

+0

이것은 자바 스크립트 오류를 ​​해결하는 데 도움이되었습니다. –

0

실제로 사이트에서 2 개의 도메인에 액세스하는 경우 두 가지를 소유하고있는 경우 공유 할 수있는 도메인을 지정하는 xml 파일을 만들 수 있습니다. the spec document을 참조하십시오. 이 옵트 인 사이트 간 액세스는 Adobe (MS Silverlight) 이상에서 지원됩니다. Silverlight의 support spec입니다.

+0

노트북에서 실행 중입니다. 내 도메인은 localhost 여야합니다. 프레임으로 가져 오는 모든 HTML 파일은 iframe을 설정하는 index.html 파일과 같은 폴더에 있습니다. –

관련 문제