Microsoft MVP성태의 닷넷 이야기
스크립트: 9. setTimeout 과 jscript/vbscript 혼용 문제 [링크 복사], [링크+제목 복사],
조회: 21108
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 


고객사로부터 DxIESaver 제품 관련하여 문의를 받았습니다.
그 문의에서 발견한 IE의 버그라고 해야 할까요.

제목에서 밝힌 것처럼, setTimeout(setInterval도 같은 문제가 있을 듯.) 메서드가 vbscript에서 사용될 때 해당 HTML 페이지에서 jscript 블럭이 있을 때 무조건 오류가 발생됩니다.

Internet Explorer의 내부 스크립트 엔진의 문제이니 만큼 원인에 대한 직접적인 파악은 할 수 없으므로, 다양하게 테스트한 현상만을 나열해 보겠습니다.

아래에 연이어 나오는 구문들 중에서 오류 발생 시 나타나는 대화창은 다음과 같습니다.
"
A Runtime Error has occurred.
Do you wish to Debug?

Line: 0
Error: 개체가 이 속성 또는 메서드를 지원하지 않습니다.
"
오류 화면

---------- 현상1: test.html ------------
조건: 상단에 jscript가 위치하고 하단에 vbscript가 위치. 
      vbscript 안에서 setTimeout 메서드를 호출

결과: 오류 발생
----------------------------------------

<script language="jscript">
// 실행 코드의 유무에 상관없이.
</script>

<script  language="vbscript">

 Sub window_onload()
   window.setTimeout "TestSub", 1000 
 End Sub
 
 Sub TestSub
 
 ' 실행 코드의 유무에 상관없이.
 End Sub

</script>



---------- 현상2: test.html ------------
조건: 위의 "현상1"에서 상단의 jscript를 vbscript 밑으로 복사한 경우

결과: 정상 동작
----------------------------------------

<script  language="vbscript">

 Sub window_onload()
   window.setTimeout "TestSub", 1000 
 End Sub
 
 Sub TestSub
 
 ' 실행 코드의 유무에 상관없이.
 End Sub

</script>

<script language="jscript">
// 실행 코드의 유무에 상관없이.
</script>


---------- 현상3: test.html ------------
조건: 상단에 vbscript가 위치하고 하단에 jscript가 위치. 
      jscript 안에서 setTimeout 메서드를 호출

결과: 정상 동작
----------------------------------------
<script language="vbscript">
' 실행 코드의 유무에 상관없이.
</script>


<script  language="jscript">

 function window.onload()
 {
   window.setTimeout( "TestFunc", 1000 );
 }
 
 function TestFunc()
 {
 // 실행 코드의 유무에 상관없이.
 }
</script>

---------- 현상4: test.html ------------
조건: 상단에 jscript가 위치하고 하단에 vbscript가 위치. 
      vbscript의 window_onload 메서드가 아닌,
      버튼의 click 이벤트에서 setTimeout 메서드를 호출

결과: 오류 발생
----------------------------------------

<script language="jscript">
// 실행 코드의 유무에 상관없이.
</script>


<script  language="vbscript">

 Sub TestSub
 ' 실행 코드의 유무에 상관없이.
 End Sub
 
 Sub BtnClick
	window.setTimeout "TestSub", 1000 
 End Sub

</script>

<input type=button onclick="BtnClick()" value="확인"></input>


---------- 현상4: test.html ------------
조건: vbscript에서 setTimeout 인자로 넘어갈 함수를 jscript의 것으로 넘겨주는 경우.

결과: 오류 화면은 나오지 않지만, TestSub 함수는 실제로 실행되지 않음.
----------------------------------------

<script language="javascript">
// 실행 코드의 유무에 상관없이.
function TestSub()
{
	alert( "TEST" );  
}
</script>


<script  language="vbscript">
  Sub BtnClick
	window.setTimeout "TestSub", 1000 
  End Sub
</script>









[최초 등록일: ]
[최종 수정일: 3/20/2023]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 166  167  168  169  170  171  172  173  174  175  [176]  177  178  179  180  ...
NoWriterDateCnt.TitleFile(s)
633정성태12/20/200826090기타: 24. RMClock for x64 [2]
632정성태12/19/200834547기타: 23. D820 - 배터리 없이 바이오스 업데이트 방법 [2]파일 다운로드1
631정성태12/10/200843549VC++: 36. Detours 라이브러리를 이용한 Win32 API - Sleep 호출 가로채기 [3]
630정성태12/9/200824374.NET Framework: 117. WPF - TreeView에서 항목이 펼쳐질 때 Cursors.Wait 사용파일 다운로드1
629정성태12/7/200833579.NET Framework: 116. 소켓 연결 시간 제한
628정성태12/6/200822135.NET Framework: 115. Marshal 타입 관련 2가지 자원 해제 메서드파일 다운로드1
627정성태12/6/200824763VS.NET IDE: 58. VS.NET IDE 팁 - 커서 위치 이동 [1]
626정성태12/6/200824839오류 유형: 65. TF53018: The application tier XXXXXXX is attempting to connect to a data tier with an incompatible version
625정성태12/6/200825045오류 유형: 64. TFS 2008 SP1 설치 - MsiApplyMultiplePatches returned 0x643
624정성태12/5/200826006.NET Framework: 114. WPF 이벤트에 속한 핸들러 확인 [2]파일 다운로드1
623정성태12/4/200830466디버깅 기술: 22. VS.NET SP1 + .NET Framework 소스 코드 디버깅 [2]파일 다운로드1
622정성태12/1/200832751오류 유형: 63. WPF - XamlParseException 대응 방법 [2]
621정성태11/30/200824778Team Foundation Server: 27. TeamBuild + VDPROJ 셋업 프로젝트 [1]
620정성태11/30/200823664디버깅 기술: 21. 올바른 이벤트 예외 정보 출력
619정성태11/30/200823807디버깅 기술: 20. 예외 처리를 방해하는 WPF Modal 대화창파일 다운로드1
618정성태11/29/200824098.NET Framework: 113. 이벤트에 속한 이벤트 핸들러 확인파일 다운로드1
617정성태11/26/200830282.NET Framework: 112. How to Interop DISPPARAMS [2]파일 다운로드2
616정성태11/26/200823576디버깅 기술: 19. C++/CLI - F11 디버깅 시의 변수 초기화파일 다운로드1
615정성태11/9/200833172.NET Framework: 111. WPF - Window, UserControl 클래스 상속 [1]
614정성태11/9/200833136.NET Framework: 110. WPF - 전역 예외 처리 [4]파일 다운로드1
613정성태11/8/200822666.NET Framework: 109. WPF - SystemColors 색상표파일 다운로드1
612정성태11/1/200828030.NET Framework: 108. WPF + WCF 환경에서는 DataContract를 권장 [1]
611정성태10/31/200822055오류 유형: 62. WPF - Visual Studio 2008 비정상 종료
610정성태10/24/200824626Team Foundation Server: 26. TFS 2008 SP1 + SQL Server 2008 설치
609정성태10/24/200828733.NET Framework: 107. WPF - RadioButton 데이터 바인딩 해제 현상파일 다운로드2
608정성태10/23/200822879오류 유형: 61. TFS 연결 오류: TF31003, TF30331 오류
... 166  167  168  169  170  171  172  173  174  175  [176]  177  178  179  180  ...