ActiveX 함수를 웹에서 호출하는데...
제가 ActiveX 를 만들어 웹에 올려놓고, 함수를 호출하는데, 이상한 일이 생겼읍니다.
ActiveX 는 설치형으로서 cab 파일 안에 설치 파일이 들어가 있읍니다.
처음 웹 페이지를 열고, 사용자가 설치에 동의하면, 당연히 설치가 되고, 해당 ActiveX 에서 정의한 함수를 호출할 수 있읍니다. 그런데 문제는 처음 ActiveX 가 설치된 상태에서 해당 함수를 호출하면 에러가 나는데, 그래서 꼭 새로고침을 해주어야 합니다. 새로고침을 하지 않으면, 이상하게 함수 호출에서 지원되지 않는 메서드라고 에러를 내뱉더군요. 근데, 새로고침만 하면 또 정상이고,,, 이것참,,,
혹시 이런 현상 겪으신 분 계신지요.
해당 소스는 이렇습니다.
<script type="text/javascript">
function Click_Button()
{
var VarHost =document.getElementById("id-text-host" ).value;
var VarPort =document.getElementById("id-text-port" ).value;
var VarPW =document.getElementById("id-text-pw" ).value;
document.getElementById("AutoVnc_ActiveX").VarHost =VarHost ;
document.getElementById("AutoVnc_ActiveX").VarPort =VarPort ;
document.getElementById("AutoVnc_ActiveX").VarPW =VarPW ;
document.getElementById("AutoVnc_ActiveX").Connect(); // 문제의 코드
}
//function Click_Button()
</script>
이상하게 새로고침을 하지 않으면 '문제의 코드'에서 에러가 발생하고 있읍니다.
그러니까 첨 설치할때는 잘되는데.. 이미 설치된
그러니까 첨 설치할때는 잘되는데..
이미 설치된 상태에서 다시 웹페이지에 들어오면 안된다는 거군요
안된다는것은 기존버전이 실행되어서 그런것일 테구요.
최신버전과 기존버전 2개가 동시에 시스템에 존재하나봐요
따라서 임시적으로 문제를 해결하려면 기존에 설치된 옛날버전을 완전히 시스템에서 삭제해버리셔야 겠네요.
웹서버에 어떤 캐쉬(프락시) 같은것을 사용하는게 아닌지요?
또는 웹페이지 자체가 2개의 버전이 있어서
최신 웹페이지는 최신버전의 activex를 호출하고 기존웹페이지는 기존버전을 호출하는건 아닐까요?
-- 그러니까 첨 설치할때는 잘되는데.. -- 이미
-- 그러니까 첨 설치할때는 잘되는데..
-- 이미 설치된 상태에서 다시 웹페이지에 들어오면 안된다는 거군요.
그게 아니구요. 첨 설치할때는 잘 안되는데, 설치 후 해당 웹페이지를 꼭 '새로고침'을 해야만 된다는 것이죠.
-- 안된다는것은 기존버전이 실행되어서 그런것일 테구요.
-- 최신버전과 기존버전 2개가 동시에 시스템에 존재하나봐요.
최신버전과 기존버전 2 개가 설치되는 일은 절대 없습니다.
Windows 2008 64bit R2 에서 32 bit 로 컴파일했고,
Windows 2008 64bit R2 와 Windows XP 에서 테스트했는데, 같은 문제가 계속 발생합니다.
댓글 달기