2011-07-06 4 views
1

hejdig.부모가 새로 고쳐질 때 어떻게 하위 창을 찾을 수 있습니까?

웹 솔루션에서 기본 창을 새로 고칠 때 내 자식 창을 다시 사용하지만 참조를 잃고 싶습니다. 고아가 된 하위 창을 찾으려면 어떻게해야합니까?

/


상황 (인해 상위 리프레시로 분리 된)

  1. 부모 윈도우가 존재한다.
  2. 사용자가 버튼을 눌러 하위 창을 엽니 다.
  3. 사용자가 하위 창에 텍스트를 입력합니다.
  4. 사용자가 부모 창이 새로 고치도록 요청합니다.
  5. 사용자가 버튼을 눌러 하위 창을 엽니 다.
  6. 하위 창이 새로 고침되고 사용자 텍스트가 사라졌습니다.

내 경우에는 부모가 CMS이고 사용자가 새 기사를 볼 때 다시로드되는 것이 자연 스럽습니다. 이 상황은 새로운 것이 아닙니다. 새로운 점은 편집 가능한 자식 창이 있다는 것입니다.

  1. 사용자가 사이트 (CMS를) 탐색 : 같은

    그래서 실제 상황입니다.

  2. 사용자가 팝업을 열고 일부 데이터를 입력하라는 메시지가 표시됩니다.
  3. 사용자가 팝업에 일부 데이터를 입력합니다.
  4. 사용자가 새 기사를 보는 것으로 결정합니다 (부모에서 새 URL을 가져옵니다).
  5. 팝업이 이제 숨겨져있어서 사용자가 팝업을 다시 열려면 다시 클릭하십시오.
  6. 팝업이 새로 고쳐집니다 (내가 피하려고하는 것).

내가 찾은 유일한 해결 방법은 세 번째 창은 iframe, 프레임을 사용하거나 열 수 및 이러한 솔루션 중 어느 것도 내 상황에서 할 수 없습니다. 이 아이를 다시로드하기 때문에

wnd = window.open("", "uniquename"); 

이 작동하지 않는 호출

.

아직 읽지 않은 아이디어는 wnd 핸들이 브라우저 세션에 고유 한 것인지 확인하고 쿠키 또는 유사하게 저장하는 것입니다. 아직 시도되지 않은 또 다른 아이디어는 자녀가 고아가되었는지 알아 내고 타이머를 통해 부모를 찾으려는 경우입니다.

답변

1

안녕하세요 당신은 자신 때문에 부모의 함수를 만들 을 prent하는 registeritself 것이다 아이에 타이머를 넣어 시도 말했듯이

var wnd = null; 
function registerChild(child){wnd = child} 

및 타이머에 아이의 미래 gogglers에 대한 모든 초 반

window.opener.registerChild(window); 
+0

: 실험을 통해 효과가 있음을 알 수 있습니다. 감사! – LosManos

+0

타이머의 아이디어와 사용자가 해킹을 피할 수있는 시간 간격을 좋아하지 마십시오. 그래서 나는 POC-> 실제 - 응용 프로그램 전환이 기다려야 할 것 같아. – LosManos

관련 문제