2014-04-07 1 views
1

동일한 도메인 내의 하위 도메인에서 호스팅되는 iframe의 contentWindow 속성에 액세스하려고합니다. 그래서 나는 (상위 페이지의 역할 호스트) a.domain.com에이 코드를 가지고 :하위 도메인에 액세스 iframe url from other subdomain 페이지

<script type="text/javascript"> 
    $(document).ready(function() {   
     $('#frame').load(function() {    
      var iframe = document.getElementById('frame');    
      if (iframe) { 
       var item = iframe.contentWindow;    
       if (item.indexOf("Completed") != -1) { 
        window.location.href = '../Home/Completed/';     
       } else { 
        window.location.href = '../Home/PayAgain/'; 
       } 
      }    
     }); 
    }); 
</script> 

실제 iframe이 내용에 앉아 b.domain.com을하고 난에서 현재 페이지를 얻으려면 iframe.

a.domain.com과 b.domain.com 모두에서 document.domain = "domain.com"을 설정해야하는 몇 가지 예를 보았습니다. 예를 들어 정확히 무엇을 a.domain에 설정해야합니까? com 및 b.domain.com과 관련하여 document.domain?

b.domain.com의 어느 페이지에서 document.domain 값을 설정해야합니까? 사전에

감사합니다, Laziale의

답변

1

나는이 같은 상황에 있었고, 내가 window.postMessage를 사용하여 프레임 사이에서 통신 할 수있는 더 나은 방법이라고 볼 : https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage

당신이 방법을 사용하려면 당신이 말했듯이, 프레임 내에서로드되는 모든 페이지는로드시 document.domain을 수동으로 설정해야합니다. 상위 페이지에서도 설정해야합니다. 그것은 단지 문서 객체의 빌트인 자바 스크립트 속성입니다.

+0

나는 postMessage 기능도 살펴 봤지만 실제로 iframe에 앉아 b.domain.com에서 호스팅되는 파일에는 어떤 변경도 수행 할 수 없습니다. 당신은 저에게 a.domain.com과 b.domain.com에 postMessage 기능을 어떻게 배치했는지 보여 줄 수 있습니까? 감사합니다. – Laziale

+0

a.domain.com과 b.domain.com에서 코드를 변경할 수 없으면이 둘 사이에서 통신 할 수 없습니다. document.domain을 UP으로 설정할 수 있지만 DOWN으로 설정할 수는 없습니다. 따라서 'a.domain.com'에서 'domain.com'으로 변경할 수 있지만 'a.domain.com'을 'b.domain.com'으로 변경할 수는 없습니다. document.domain 속성을 설정하고 window.postMessage 메서드를 수행하려면 코드에 액세스해야합니다. – ramseyjacob

+0

코드 샘플을 제공해 주시겠습니까? 코드에 액세스 할 수 있다면 어떻게 할 수 있습니까? 감사합니다. – Laziale

관련 문제