2010-03-31 4 views
2

알았어, 나는이 문제에 대한 나의 지혜 끝에있다.기존 창 액세스에 대한 도움말 개막 후 새로 고침!

첫 번째, backstory. 저는 새로운 콘텐츠를 추가 할 때 사용자가 미디어 파일을 업로드하고 필요에 따라 트랜스 코드 할 수있는 비디오 관리 시스템을 개발 중입니다. 우리는 브라우저 기반 FTP 클라이언트에 Java 애플릿을 사용하고 있습니다.

사용자가 업로드를 시작한 다음 FTP 연결 인스턴스를 팝업 창으로 보낼 수 있도록 허용하려고합니다. 이 창은 FTP 전송 프로세스의 작업 대기열 역할을합니다. 이를 통해 사용자는 개별 파일 전송이 완료 될 때까지 원본 페이지에 머물지 않고도 메인 인터페이스를 이동할 수 있습니다.

대부분이 모든 작업을 수행하지만 여기에 문제가 있습니다. 창이 닫히면 모든 연결이 끊어지고 대기중인 모든 파일의 업로드 프로세스가 취소됩니다.

그래서 Window One이 팝업 창을 열거 나 대기열에 항목을 추가하거나 화면을 새로 고치거나 다른 페이지로 이동하면 팝업 창에 어떻게 액세스합니까?

팝업 창과 그 내용은 사용자가 원래 창을 탐색하는 동안 계속 유지되어야합니다. 원래 창은 대기열에 새 작업을 추가하기 위해 팝업에 액세스 할 수 있어야합니다. 팝업 창 자체가 여는 창의 독립적이다, 그래서 통신이 한 방향으로 만 발생 -> 팝업

하지

부모 < -

부모 널 (

Window.open 팝업, 'WINDOW_NAME'); 이 경우에는 작동하지 않습니다. window.open을 사용하기 전에 윈도우가 있는지 확인해야합니다.

Help!?!?

답변

3

SOLVED !!!

다음은 내가 한 일입니다. 팝업 창에서 임의의 변수를 추가했습니다. 상위 창이이 변수의 존재 여부를 확인합니다. 정의 된 경우 창을 열어야합니다. 그렇지 않으면 새 창을 엽니 다.

이 방식은 window.open (null, 'WINDOW_NAME')을 사용하여 아주 작은 브라우저 창을 엽니 다. 중 당신이 URL을 지정하지 않으면, 그것은 것입니다 : 오픈

A) 빈 창이 B)는 변수에 대한 기존의 창을

그 다음 검사를 초점을 맞 춥니 다. 존재하지 않으면 창을 닫고 'false'를 반환합니다. 그럴 경우, 기존 창에 초점을 맞추고 'true'를 리턴합니다.

function isWindowOpen(targetWindowName) 
{ 
    tempTargetWindow = window.open('', targetWindowName, 'width=1,height=1'); 

    if(typeof(tempTargetWindow.thisWindowExists) == 'undefined') 
    { 
     tempTargetWindow.close(); 

     return false; 
    } 

    return true; 
} 
관련 문제