2014-07-27 1 views
0

나는 dc.js 시각화에 네 가지 막대 그래프가 있음을 만들었습니다. 또한 각 그래프에는 새 브라우저 창에서 특정 그래프를 여는 버튼이 있습니다. 이를 위해 각 그래프마다 별도의 HTML 파일을 만들었습니다. 두 개의 다른 창에서 열린 그래프 사이에서 상호 작용하고 싶습니다. 가능한가? 방법?dc.js crossfilter의 두 개의 다른 브라우저 창에서 두 개의 다른 그래프 사이에 상호 작용

감사합니다.

답변

0

window.opener은 열린 창에 대한 참조를 반환합니다.

첫 번째 창에서 조작해야하는 모든 객체에 전역 참조 (예 : var graphThing 또는 window.graphThing)를 남길 수 있습니다. 그런 다음 원래 창에서 시작된 창은 window.opener.graphThing을 호출하여 첫 ​​번째 창 graphThing에 액세스 할 수 있습니다.

자식 윈도우의 속성에 액세스하려면 다음과 같이 그것을 열어를 연 부모, 당신은 자식 창에 대한 참조를 유지할 수 있습니다 (의 글로벌 var childGraphThing 또는 window.childGraphThing 말을하자) : 다음

var childWindow = window.open('childGraph.html', 'blank_'); 

에 (

var childWindowGraphThing = childWindow.childGraphThing; 
+0

는 또한, 당신이 첫 번째 창에서 필요한 특정 속성과 crossfiliter 예 (같은 차트 그룹에 가입하고 이벤트를 수신하기 위해) 직류 예입니다, 당신은 다음과 같은 속성의 액세스 할 수 있습니다 dat을 공유하기 위해서 에이). 두 번째 창에서 크로스 필터 인스턴스를 가져 오려면 크로스 필터 인스턴스를 윈도우 속성에 명시 적으로 작성해야 할 수 있습니다. 아마도 두 번째 창에서 dc.js를로드하는 데 혼란을 일으킬 것입니다. 대신에'window.dc = window.opener.dc;'를 써야합니다. – Gordon

관련 문제