대부분의 엑스플렛폼으로 서비스되는 사이트들은 팝업으로 엑스플렛폼 (Runtime) 인스톨 & 런처 실행 페이지를 띄우고, 런처가 실행되면 팝업은 수초 후 닫히는 구조인데, 런처가 실행될때 팝업등 웹 브라우저 뒤에 숨어서 뜨거나, 아니면 팝업이 닫히면서, 엑스플렛폼 런처가 웹 브라우저 뒤로 숨어버리는 현상이 있다.
해결
원인은 잘 모르겠고 보니까 뭔가의 이유로 프로그램들 간 순서가 바뀌는것같은데.. 젤 처음 로딩 되는 폼에서 (예를들면 로그인폼이라던지 아니면 메인화면 폼등) mainframe.activate() 함수와 ExtCommonAPI 의 SetTopWindow(true) 함수를 사용해서 런처를 최상위로 올리는 방법을 사용하면 된다.
form의 onload 이벤트에서 런처를 최상위로 올리는 설정를 해주고, form의 ontimer이벤트를 사용해서 몇초후 최상위 설정을 풀어준다. (인스톨 팝업이 닫히고 나서, 엑스플렛폼 런처 최상위 설정을 풀어준다고 생각하고, 해제 시간딜레이를 주자.)
// ExtCommon
var extCommon = new ExtCommon();
// 폼의 onload 이벤트
function formname_onload(obj, e)
{
application.mainframe.activate();
// 런처 최상위 설정
extCommon.SetTopWindow(true);
// 5초뒤 이벤트 실행, 최상위 해제할 시간 딜레이는 상황에 맞게 알아서 주자.
setTimer( 1, 5000 );
}
// 폼의 ontimer 이벤트
function formname_ontimer(obj, e)
{
// 계속 사용할 필요없으니, 한번사용하고 타이머는 죽인다.
this.killTimer(1);
// 런처 최상위 해제
extCommon.SetTopWindow(false);
}