일반적으로 ActiveX 설치확인시 사용하는 방법은 아래와 같다.
레지스트리에 등록되는 ProgId 값으로 검사하는 방법이다.
function ActiveX설치확인(ProgId)
{
var isInstall = false;
try {
var obj = new ActiveXObject(ProgId);
if (obj) return true;
} catch (e) {
return false;
}
return false;
}
다 잘되는데 문제가 하나 있는데,
같은 종류지만 버전이 낮은 ActiveX가 설치되어 있을 경우이다.
이럴 경우 자동으로 업데이트를 시도하게 되는데 위의 저 'ActiveX설치확인()' 함수를 호출할 때 ActiveXObject 를 하나 만들어 버려서,
업데이트를 할 수 없게되고 재부팅을 하라고 한다.
그러므로 원활한 버전 업데이트까지 염두에 둔다면 ActiveXObject를 생성해서 검사하면 안되고,
Object의 특정 property를 통해 검사하는 게 필요할 듯 하다.
method는 안된다. 만약 ActiveX가 설치되지 않은 상태에서 method의 이름으로 검사하면 자바스크립트 에러가 난다.
예를 들어, 어떤 ActiveX 오브젝트의 property 중 이름을 나타내는 name 이란게 있다고 치고 문자열이라고 칠 때,
아래와 같이 검사하면 되겠다.
function ActiveX설치확인(objName)
{
var obj = document.getElementById(objName);
if (obj) {
if (obj.name!='[undefined]') return true;
}
return false;
}
'JavaScript' 카테고리의 다른 글
insertAfter 함수 (0) | 2009.05.02 |
---|---|
DOM Node Property (0) | 2009.05.02 |
DOM note-Method (0) | 2009.05.02 |
JavaScript 에서 ActiveX 이벤트 핸들러 걸기 (0) | 2009.04.18 |
자바스크립트 사이트. (0) | 2009.04.18 |