2012-01-12 7 views
0

나는 이와 같은 많은 질문을 보았지만이 질문이 반복적 인 것처럼 보이는 경우 사과 할 수있는 특정 상황을 돕는 것으로 보이는 항목을 찾지 못했습니다.iframe과 페이지 사이의 통신 ie8의

나는 www.foo.com 사이트가 있고 그 안에 iframe이 있습니다. foo.com에서 a 태그를 클릭하면 javascript 함수가 호출되어 iframe에 새 이미지를 전달하여 사용자를 표시합니다. iframe과 그 "상위"사이의 통신은 임의의 IE8 페이지를 제외한 모든 브라우저에서 정상적으로 작동하는 것으로 보입니다. "액세스가 거부되었습니다"라는 오류 메시지가 나타나고 브라우저가 활성화 된 기능을 가리 킵니다. 다음은 사이트의 코드가 어떻게 작동하는지 보여줍니다.

iframe이 :

<iframe scrolling="no" src="foo.com/bar" id="ifram" name="ifram"></iframe> 

는 A 태그 :

자바 스크립트가 :

if($(this).val() == '242'){ 
    document.getElementById('ifram').style.border='0px'; 
    document.getElementById('ifram').style.background = "url('../product_images/uploaded_images/Flag.jpg')"; 
    document.frames.ifram.document.body.style.backgroundColor="transparent"; 

이 코드의 스 니펫하고의 전 과정을 포함하지 않습니다 아약스가 이미지를 얻기 위해 호출했지만 아약스가 문제의 일부인지 확실하지 않았습니다. 파이어 폭스에서 정의되지 않은 오류가 발생하지만 함수는 여전히 실행됩니다. 나는 firefox에 window.frames를 사용해야한다고 가정하고있다.

전반적으로이 문제를 해결하는 방법에 대한 도움을 주시면 감사하겠습니다. 브라우저 설정과 관련된 보안 문제가 있거나 코드화 된 부분에 문제가 있는지 궁금합니다. 그것은 당신의 iframe을 태그http://www.foo.com에있는 페이지에 있지만 경우 http://foo.com에 iframe이 점은 그것이 샌드 박스 위반으로 간주하고 액세스가 거부거야 점에 유의하는 것이 중요합니다 사전

답변

0

감사합니다. 페이지가 켜져있는 도메인을 가리키고 있는지 확인하십시오. iFrame src 태그에서도 상대 URL을 사용할 수 있으므로 src="bar.php" (도메인 정보 없음)으로 변경할 수 있습니다.

+0

웹 페이지 오류 정보가 계속 나타납니다. 사용자 에이전트 : Mozilla/4.0 (MSIE 8.0, Windows NT 5.1, Trident/4.0, GTB7.2, InfoPath.2, .NET CLR 2.0.50727, InfoPath.1; .NET CLR 3.0.4506.2152, .NET CLR 3.5.30729) 타임 스탬프 : 2012 년 1 월 12 일 20:05:20 UTC 메시지 : 액세스가 거부되었습니다. 줄 : 103 문자 : 5 코드 : 0 URI : .... –

+0

차가움. 내 대답은 말했듯이'src = '와 웹 페이지의 URL이 모두 같은 도메인 이름에 있는지 확인하려고 했습니까? – Tim

0

document.framesdocument.frames.ifram.document.body.style.backgroundColor = "#ccc"; 전에 사용하지 않아도됩니다. 그냥 ifram.document.body.style.backgroundColor = "#ccc"; 할 것입니다.