2014-11-20 3 views
0

내 시나리오 : 동일한 웹 응용 프로그램의 여러 복사본이 동일한 브라우저의 여러 탭에서 열려 있습니다. 나는 그 탭 중 하나에 간다. 나는 페이지의 현재 버튼을 클릭하고 그 버튼을 클릭하면 윈도우에 포커스 이벤트를 등록한다.자바 스크립트로 여러 탭 이벤트 공유

$('#btn').click(function(event){ 
if (/*@[email protected]*/false) { 
    document.addEventListener("focusin", onFocus,false); 
} else { 
    window.addEventListener("focus", onFocus,false); 
} 

function onFocus(){$ 
    //Reload Page if logged out$ 
    window.location.reload();$ 
};$ 

다른 탭으로 전환하면 페이지가 다시로드되어야합니다.

다른 페이지가 다시로드되지 않는 문제가 있습니다.

+1

크로스 탭 통신을보고 있습니다. postaljs라는 라이브러리를 살펴보십시오.이 라이브러리에는 탭과 창간에 메시지를 보낼 수있는 페더레이션 통신용 플러그인이 있습니다. 시작할 수있는 좋은 장소 일 수 있습니다. –

+1

웹 소켓이 필요하다고 생각합니다. http://socket.io/을 보시오. –

+0

내 질문을 재검토하자. 페이지로드 시작시 이벤트를 등록하면 의도 한대로 작동합니다. 그러나 다른 이벤트를 기반으로 on에 등록 이벤트가 있으면 작동하지 않습니다. –

답변

0

페이지로드시 리스너를 추가하면 작동합니다.

$(document).ready(function(){ 
    if (/*@[email protected]*/false) { // check for Internet Explorer 
    document.addEventListener("focusin", onFocus,false); 
    } else { 
    window.addEventListener("focus", onFocus,false); 
    } 
    return true; 
}); 
관련 문제