2014-01-31 3 views
0

실제 모달 창 사용을 ​​주장하는 프로젝트를 진행하고 있습니다. 현재 구현은 "showModalDialog"를 호출하고 대화 상자가 "returnVal"에 저장 한 결과를 사용합니다.팝업 창에서 새 페이지를 탐색 할 때에도 콜백 포인터를 유지하십시오.

그러나 Chrome에서는 다른 페이지로 이동하면이 기능이 더 이상 작동하지 않습니다. 문서화 된 버그입니다.

window.open을 사용하도록 변경했습니다. 콜백은 아무 문제없이 전달할 수 있습니다 ... 그러나 팝업 창을 탐색 할 수 있어야합니다 (DB에 항목을 추가 한 다음 항목 ID를 호출 페이지로 반환합니다). 콜백을 팝업 창에 전달할 수 있지만 탐색 할 때 콜백이 손실됩니다.

팝업 창에서 새 페이지로 이동할 때도 콜백 포인터를 유지할 수있는 방법이 있습니까? ?

답변

0

프레임 세트를 대화 상자에서 열고 프레임 세트에서 프레임에 페이지를로드하십시오.

다음 페이지로 이동하면 프레임 안에 있으므로 프레임 세트는 동일하게 유지되고 returnVal은 그대로 유지됩니다. 액자에서 parent.returnVal을 사용하여 반환 값에 액세스 할 수 있습니다.

+0

흠, 이것이 어떻게 작동하는지 볼 수 있습니다 ... 페이지가 실제 URL을 숨기고 (프레임이 싫어서 프레임이 싫어서) 모달로드 시간에 다른 요청이 추가되었습니다. 실제 POST 대신 AJAX 호출을 사용하여 동일한 작업을 수행 할 수 있다고 가정하지만 백엔드가 필요합니다. 따라서 AJAX/프레임을 제외하고 다른 솔루션을 생각해 볼 수 있습니까? POST를 통해 자바 스크립트 콜백을 전달할 수 있습니까? – DanRedux

+0

@ DanRedux : 참조를 유지하는 다른 방법을 생각할 수 없습니다. 페이지 사이의 텍스트 형식으로 만 정보를 전달할 수 있습니다. – Guffa

+0

네비게이션 중에 전달 된 JS 문자열을 전달한 다음 eval'd를 전달할 수 있다고 생각합니까? – DanRedux