HTA에 포함 된 JScript에서 Excel을 열 수 없음
Dec 02 2020
다음은 이 질문에 , 나는에 VBScript 코드를 변환 할 노력하고있어 이 페이지 의 JScript에. 아래 .hta
코드를 실행하면 :
<HTML>
<BODY>
<INPUT id=button1 name=button1 type=button value=Button>
<SCRIPT LANGUAGE="VBScript">
sub button1_onclick()
dim app
set app = createobject("Excel.Application")
app.Visible = true
dim wb
set wb = app.workbooks.add
end sub
</SCRIPT>
</BODY>
</HTML>
버튼을 클릭하면 빈 Excel 시트가 열립니다. 예상대로. 그러나 VBScript 부분을 JScript로 변환하면
<HTML>
<BODY>
<INPUT id=button1 name=button1 type=button value=Button>
<script LANGUAGE="JScript">
function button1_onclick() {
// var app = WScript.CreateObject("Excel.Application");
var app = new ActiveXObject("Excel.Application");
app.Visible = true;
var wb = app.Workbooks.Add();
}
</script>
</BODY>
</HTML>
버튼을 클릭해도 Excel이 전혀 열리지 않습니다. 문제가 무엇인지, 어떻게 해결할 수 있는지 알려 주시면 감사하겠습니다. 미리 지원해 주셔서 감사합니다.
답변
1 user692942 Dec 02 2020 at 16:53
Object_Event
구문이 작동 하지 않는 이유는 무엇 입니까?
실제로 매우 간단한 Object_Event
구문은 VBScript입니다. 이벤트가 JScript에서 자동으로 바인딩되도록하려면 올바른 구문을 사용하기 만하면됩니다 Object::Event
. 여기에 자동 바인딩 된 이벤트를 사용하는 예제가 있습니다.
<html>
<body>
<input id="button1" name="button1" type="button" value="Button">
<script language="JScript">
function button1::onclick() {
var app = new ActiveXObject("Excel.Application");
app.Visible = true;
var wb = app.Workbooks.Add();
}
</script>
</body>
</html>
방금 이것을 테스트했고 작동하는 onclick
것처럼 보이므로 @Teemu 가 주석에서 제안한 것처럼 이벤트 핸들러 가 누락되었을 수 있습니다 .
<html>
<body>
<input id="button1" name="button1" type="button" value="Button" onclick="return button1_onclick();">
<script language="JScript">
function button1_onclick() {
var app = new ActiveXObject("Excel.Application");
app.Visible = true;
var wb = app.Workbooks.Add();
}
</script>
</body>
</html>
유일한 실제 차이점은 요소 onclick
에 이벤트 핸들러 가 포함된다는 것입니다 <input>
.
onclick="return button1_onclick();"
클릭하면 새 통합 문서로 Microsoft Excel을 여는 버튼이 표시됩니다.
유용한 링크
- HTA 파일의 자바 스크립트
- HTA 응용 프로그램에서 프로그램 열기
- Javascript를 사용하는 HTA의 ActiveX 이벤트 핸들러 (Javascript라고하는 사실은 JScript에 대한 잘못된 정보를 보여줍니다) .
- MSDN (Scripting Clinic)-스크립팅 이벤트