ActiveX 설치확인

JavaScript 2009. 4. 18. 21:11




일반적으로 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
Posted by bloodguy
,