2011-03-03 4 views
5

형제 하위 도메인에 자바 스크립트 코드 :도메인 간 나는 두 개의 웹 응용 프로그램 설정을

데이비드 .example.com을하고 .example.com을

데이비드 존에 새 창을 엽니 다 :

window.open('john.example.com'); 

존은 이제 다윗에 다시 입력 요소를 설정 하시겠습니까 :

$("#input", window.opener.document).val("Hello David."); 

내 문제는 크로스 도메인 스크립팅 보안 때문에 대부분의 최신 브라우저에서 작동하지 않는다는 것입니다. 나는 또한 아무런 성공도없이 David와 John 모두 다른 도메인 조합에 document.domain 설정을 시도했습니다.

이 작업은 John이 example.com에 있고 document.domainexample.com 인 경우에만 작동합니다. 그러나 example.com은 당사의 주요 웹 사이트이며 솔루션으로 제공되지 않습니다.

솔루션을 현대적인 보안 의식이있는 모든 브라우저에서 작동시키면서 위의 예제를 수행 할 수있는 방법이 있습니까?

참고

  • 나는 example.com 및 모든 하위 도메인을 제어 할 수 있습니다.
  • David와 John은 별도의 웹 응용 프로그램이므로 동일한 하위 도메인에서 호스팅 할 수 없습니다.
+0

에 적립

document.domain = location.host.replace(/^.*?([^.]+\.[^.]+)$/g,'$1'); 

당신은 "example.com은 우리의 주요 웹 사이트입니다 및 솔루션으로 사용할 수 없습니다. 그러나"무엇을 의미합니까? 'document.domain'을''example.com ''으로 설정하는 것이 올바른 해결책입니다. – RoToRa

답변

8

DOM의 document.domain을 설정하는 한이 작업을 수행 할 수 있어야합니다. 마틴 제스 퍼슨

+0

당신은 전설 이예요! :) – GateKiller

+0

그래서 나는 5 분 안에 대답을 받아 들일 것입니다. – GateKiller

+0

감사합니다. 행운을 빕니다. –

-1

도메인 간 통신을 위해 항상 iframe을 사용할 수 있으며 hashbang을 통해 메시지를 보낼 수 있습니다. 예를 들어 this을 참조하십시오. 그것은 기본적으로 페이스 북이 연결하는 것과 같은 것들의 동작입니다. 한 응용 프로그램이 다른 창을 열면 일반 창에서도 그렇게 할 수 있다고 생각합니다.

+0

Chrome 및 FF4 : – GateKiller

+0

과 같은 최신 브라우저에서는 더 이상 작동하지 않습니다. 최신 브라우저에서 사용 가능한 경우 HTML5 기능을 사용할 수 있습니다 (http://html5demos.com/postmessage2 참조). –

관련 문제