2010-06-06 6 views
0

몇 시간 동안이 코드를 작성하려고했지만 여전히 그럴 수 없었습니다. 그것은 "Permission Denied"라고 알려줍니다.팝업 창에서 JavaScript 액세스 부모 창

여기 내가 달성하려고하는 것입니다. 설명하기가 매우 어렵습니다. 아래 예제를 따르십시오.

예를 들면. domain111.com 및 domain222.com. domain111.com에 팝업 링크를 클릭하면 domain111.com/popup.html이 팝업되어 domain222.com으로 리디렉션됩니다. 이 domain222.com에서는 결과가 domain111.com으로 다시 리디렉션되기 전에 몇 페이지로 리디렉션됩니다. domain111.com에서 domain111.com으로 결과를 보내고 싶습니다.

과정은 아래와 같습니다. Domain111 - 팝업 -> Domain111 - 리디렉션 -> Domain222 - 리디렉션 xxx Domain222 페이지는 다음으로 리디렉션 -> - Domain111 --- 부모 창으로 보내기 -> Domain11

여기 내 코드입니다.

파일 이름 1.hml

<script type="text/javascript"> 
    function IamParent() { 
     alert('I am the parent of this window') 
    } 
    function PopUP() { 
     window.open("http://domain222.com/2.htm", 'ALpop').focus(); 
    } 

</script> 
<body> 
    <a href="#void(0);" onclick="PopUP();" >Click</a> 
</body> 

파일 이름 2.html 2.htm 파일 이름

<head> 
    <title></title> 
    <meta http-equiv="refresh" content="1;url=http://domain111.com/3.htm?Result=Yes" /> 
</head> 

domain222.com 에 domain111.com 에 domain111.com

<script type="text/javascript"> 
    parent.IamParent(); //execute the function from the same domain111.com/1.htm 
</script> 

AJAX 또는 웹 요청을 제안하지 마십시오.이 경우에는 작동하지 않기 때문입니다.

읽어 주셔서 감사합니다.

답변

1

JavaScript 엔진의 보안 제한 요구 사항으로 인해 다른 도메인의 상위 창이 액세스 할 수 없습니다. 이것은 모든 브라우저에 적용됩니다. 이 기능은 비활성화 할 수없는 사이트 간 스크립팅 공격 방지입니다.

+0

먼저 다른 도메인으로 리디렉션 된 동일한 도메인의 팝업으로 원래 도메인으로 돌아갑니다. 따라서 마지막 단계와 첫 번째 단계는 동일한 도메인에있었습니다. – user359472

+0

@ user359472 : 전체 체인을 사용할 수 없도록 만드는 중간 단계입니다. 보안 엔진은 이제이를 허용 할 것입니다. 나는 이것에 대한 합리적인 해결 방법을 본 적이 없다. 우리 회사에서는 DNS 별칭을 사용하여 두 번째 도메인의 이름을 바꿔서 작동하도록했습니다. 그래도 조금 정신이 나간다. –

+0

성능 문제로 인해 Ajax를 사용하여 상태를 계속 확인하기 위해 부모 윈도우를 갖고 싶지 않습니다. 어쩌면 데이터베이스에 ID를 저장하고 마우스가 페이지에 다시 들어가면 확인해야합니다. 이것은 아마도 현재로서는 가장 좋은 해결책 일 것입니다. 감사합니다. – user359472

관련 문제