웹페이지에 떠 있는 ActiveX Form의 메소드를 자바스크립트로 호출해 보려고 하는데요.. 그게 잘 안되네요.. 긁적.. 어케 하면 되죠?
ActiveXForm에서는 type 라이브러리 통해서 함수를 아래와 같이 정의해줬습니다.
function TInline_f.Test_String(const inStr: WideString): WideString;
begin
Result := '9201711';
end;
그리고 웹소스는 다음과 같이 해봤는데요..
<HTML>
<SCRIPT Language="JavaScript">
function chk_local() {
var Inst = "12345";
var rtnBool = "";
rtnBool = Inline.Test_String(Inst);
alert (rtnBool);
}
<BODY>
<OBJECT ID = "Inline"
..</OBJECT>
<FORM name='form1'>
<input type='button' onclick='javascript:chk_local()' value='go'>
</FORM>
</BODY>
</HTML>
이렇게 하면.. 메소드를 못찾더군요. 자바 스크립트는 '개체가 이 속성 또는 메소드를 지원하지 않습니다' 라고 에러메시지를 내더군요.
혹시나 해서 메소드를 호출하는 방식을 바꿔서..
rtnBool = Inline.Test_String(Inst , rtnBool);
이렇게 했을 때나.. 그냥
Inline.Test_String(Inst , rtnBool);
이렇게 했을 때는, "인수의 갯수나 속성 할당이 잘못되었습니다."라는 메시지가 나오더군요.
아무래도 ActiveX Form쪽의 문제라기 보다는 호출 방법이 잘못된 거 같은데.. 어떻게 하면 될까요?
BSTR 타입을 쓰셔야 되는 걸로 압니다.