2013-03-07 2 views
3

window.postMessage를 사용하여 두 개의 창을 통신 할 수있게하고 싶습니다. 그러나이 창에는 초기 연결이 없습니다. 하나는 다른 하나의 iframe이 아닙니다. 이 두 창을 서로 통신 할 수 있도록 "찾기"할 수있는 방법이 있습니까? 창에서 "이름"으로 다른 창을 훑어 볼 방법이없는 것 같습니다. 나는 같은 도메인에 쿠키를 둘 다 준비 할 수 있지만 쿠키에 객체/포인터를 넣을 방법이 없습니다.브라우저 창 도움말 window.postmessage에 대한 랑데뷰

답변

1

내가 잘못했습니다! HTML5 weekly이 방금 나온 후 an article solving this exact problem에 대한 링크가 포함되었습니다.

기술은 localStorage을 동일한 도메인의 모든 창에서 공유하는 관찰 가능하고 수정 가능한 리소스로 사용합니다. Facebook과 Google은 수년간이 작업을 해오 고 있습니다.

There's a demo 매우 읽을 수있는 코드와 (옆에 여러 창 측이를 열고, 꽤 mindblowing하고이다)하지만, 다음과 같이 중앙 메커니즘은 다음과 같습니다 이벤트

를 수신

방송 이벤트

window.localStorage.setItem('key', value); 

window.addEventListener('storage', function(event){ 
    var message = event.newValue; 
} 

이것으로 날아갑니다. 나는 이것을 어떻게 든 구현해야 할 것이다.

+0

[스택 오버플로 채팅도이 기능을 사용합니다.] (http://meta.stackexchange.com/questions/85034/multiple-chat-tabs/85045#85045). 우리 코앞에 서있었습니다. – Barney

+0

예, 과거에 쿠키를 기반으로 한 비슷한 기술을 사용했습니다. 그것은 작동하지만, clunky 느낀다 : 내가 원하는 모든 상태가 동기식 (그리고 이상적으로는 엿 들기가없는) 두 윈도우 사이의 통신 일 때 상태를 설정하도록 강요 당하면서 잘못되었다. –