첨부파일 다운로드 => msie_mi_sample2.zip
마이플렛폼내에서 html구성의 레거시시스템(혹은 동일시스템의) 웹페이지 를 호출 및 제어하기 위한 확장 오브젝트입니다.
msie(microsoft internet explorer ) 는 마이플렛폼에서 기본제공하지 않는 확장 오브젝트 이며 등록시 오브젝트 타입명을 AxMsie (Ax = ActiveX ) 로 보통 설정합니다.
msie 추가방법
1.프로젝트 매니져에 Components 탭을 선택 후 플러스 버튼을 클릭
2.ActiveXControls 탭을 선택 후 Microsoft WebBorwser 선택 후 Insert버튼 클릭 . (윈도우 pc )
작성 예시코드
제어하기 위한 페이지 내용 (html 웹페이지)
./getyear.html
================================================================
<html>
<body>
<form id=frm name=frm>
<input type=text id=YEAR value='2012'>
</form>
</body>
</html>
호출하는 화면 스크립트 (마이플렛폼)
================================================================
<!--오브젝트 선언부-->
<AxMSIE Bottom="125" Height="64" Id="msie0" Left="400" NavigateComplete2="msie0_NavigateComplete2" Right="480" Top="61" Visible="FALSE" Width="80"></AxMSIE>
<!--이벤트 핸들링, 제어스크립트-->
//버튼(btnGetYear)을 클릭했을때 msie 를 호출처리
function btnGetYear_OnClick(obj){
var PageUrl = "http://domain/getyear.html";
msie0.Navigate(PageUrl);
}
//NavigateComplete2 이벤트 처리 (웹페이지 로딩 후 호출 이벤트)
function msie0_NavigateComplete2(obj,pDisp,URL){
//getyear.html form 태그 "frm" 을 변수로 추출
var f_webForm = sie0.Document.forms.namedItem("frm");
//"frm" 내 선언된 태그 "YEAR" 값을 추출
var year = f_webForm.elements.namedItem("YEAR").value; //
}
이슈사항
1. 시스템간 문자셋 문제
레거시시스템과의 문자셋 호환은
get 방식 호출에서 한글을 전달하고 , 폼값을 받는 경우 모두 문제가 없었습니다. (다른 문자셋에서는 문제가 발생할 소지는 있다고 생각됨)
테스트 방식은 utf-8(mi) <==> euc-kr(legacy)
2. 기타 오류
특정 폼값이 수집되지 않는 문제 발생
NavigateComplete2 이벤트 함수 호출 시점에서 값을 수집하는데 일부 태그 값이 수집되지 않음
브라우져에서 호출하면 모든 태그가 정상적으로 보여짐
얼럿을 띄워 딜레이를 주니 정상 수집됨
원인은 mi 버그가 아닌가 추측.
(해당 페이지가 ajax 방식으로 폼로딩후 값을 세팅하는 경우는 아니기 때문에 결국은 html 소스 로딩이 끝나지 않은 상태에서 해당 이벤트가 호출된것이라고 봄)
개발 플젝
hw sp모듈 ESPCR1010
참조 소스 파일 첨부