2009-09-30 3 views
1

웹 페이지 A의 웹 페이지 A는 웹 페이지 B의 iframe에 임베드되어 있습니다. A와 B는 두 개의 서로 다른 도메인에 있으므로 원본 정책이 동일합니다 A가 B의 속성에 액세스하는 것을 방지합니다.다른 원본 도메인의 iframe에 다른 페이지를 포함하고있는 웹 페이지의 URL을 얻는 방법

location = window.top.location.href // emits a "Permission denied" error 

A가 B의 URL을 가져 오는 다른 방법이 있습니까?

+0

parent.document.location은 어떤가요? – arkanciscan

+0

Aardvark가 다소 도움이되었습니다. http://vark.com/history/questions/3506356 – arkanciscan

답변

1

No

+0

페이지가 동일한 도메인의 페이지에 포함 된 경우 window.top 만 사용할 수 있습니까? – arkanciscan

+1

아니요, window.top을 사용할 수 있습니다. 상단 프레임에서 데이터를 읽을 수 없습니다. 예를 들어 ** 위치를 설정하여 브라우저가 '상단'프레임에 다른 URL을로드하게 할 수 있습니다. – Quentin

0

당신이 두 도메인을 제어 할 수 있다면, 당신은 사이에 클라이언트 스크립트에서 통신을 위해 사용하기 쉬운 API를 제공 랩 크로스 브라우저 단점과 EasyXDM 같은 크로스 도메인 스크립팅 라이브러리를 시도 할 수 있습니다 해당 도메인에 대해 가장 유용한 메커니즘을 사용하는 다른 도메인 (예 : 가능하다면 postMessage, 그렇지 않은 경우 다른 메커니즘).

경고 : 두 도메인을 모두 제어 할 필요가 있습니다 ("제어"란 두 도메인 모두에 정적 파일을 배치 할 수 있음을 의미합니다). 그러나 서버 측 코드를 변경하지 않아도됩니다.

경우에 따라 location.href를 살펴보기 위해 하나 또는 두 페이지에 javascript를 추가하고 라이브러리를 사용하여 한 페이지의 스크립트에서 다른 페이지의 스크립트로 호출 할 수 있습니다.

또 다른 경고 : 여기에는 보안과 관련된 의미가 있습니다. 다른 도메인의 스크립트를 신뢰하는지 확인하십시오!