HTA的全新功能。我有一个HTML页面,允许用户为我们的一个应用程序提交密码请求。在机器升级到Windows 10之前,这一切正常,并且我不再有权获取Object电子邮件和用户帐户。好消息是,如果我将文件另存为HTA,它会起作用。 但是,一旦提交表单,它就用javascript位关闭了该表单,然后重新加载了该表单。 如何: 在“提交”按钮上运行JavaScript代码,然后关闭HTA?
<html>
<head>
<title>Test Form</title>
<HTA:APPLICATION>
<body oncontextmenu="return false" onload='setFocusToTextBox()'>
<h1><strong>Test Password reset</strong></h1>
</head>
<script Language="VBScript">
Option Explicit
Sub Window_Onload
window.resizeTo 640, 480
dataarea.innerhtml = "<form name=""MyForm"" autocomplete=""off"" onsubmit=""WriteFile()"">" & _
"<p>" & _
"<h4>FDM Username:" & _
"<input type=""text"" id=""uname"" placeholder=""Username (eg: SMITHA)"" required/></h4>" & _
"<center><h5>(eg: WHITEP)</h5></center>" & _
"<br>" & _
"<h4><input class=""button"" name=""button"" type=""submit"" value=""Submit Request"" id=""SubBtn"" onclick=""changeSubmit();""/></h4>" & _
"</p>" & _
"</form>"
end sub
Sub CloseWin
Self.Close()
Window.Close()
End Sub
</script>
<span id=DataArea></span>
<script language="javascript">
function WriteFile() {
var getResult = confirm("Rquest submitted, HERE IS THE PROBLEM WHEN CLICK OK, IT RELOAD THE FORM IN A NEW SCREEN.");
CloseWin();
}
function changeSubmit() {
document.getElementById("SubBtn").value="Submitted";
}
function setFocusToTextBox(){
document.getElementById("uname").focus();
}
</script>
</body>
</html>
答案 0 :(得分:1)
欢迎来到HTA世界。
简短的答案是,您可以从javascript函数中简单地调用closeWin()(带有括号的vbscript子目录)。
在测试代码时,我遇到了一些错误,因为调用functins onsubmit和onclick的html部分需要在标记中指定语言
<input type="button" onclick="myfunction()" language="javascript"/>
此外,您需要了解的有关HTA文件的最重要的事情是如何设置文件将使用的Internet Explorer版本。我认为默认值为7,因此您会发现更新的HTML(例如“占位符”)将无法使用。您可以使用meta标签进行更改(请参见下文)。如果您想让vbscript工作,请不要超过10。
<meta http-equiv="x-ua-compatible" content="ie=10" />
**更新**
我查看了您的更新代码,正是表单提交打开了浏览器。您确实不需要提交表单,甚至不需要在表单中包含文本框和按钮。
我遇到错误时更改了onload子并向其中添加了焦点代码,因为Javascript在VBScript之前运行并且无法设置焦点。我取出了功能setFocusToTextBox()
唯一缺少的是,当用户按下ENTER键时,请求不会自动处理,因此他们必须按下按钮。有一种解决方法,但这并不是一个大问题。
Sub Window_Onload
window.resizeTo 640, 480
dataarea.innerhtml = "" & _
"<p>" & _
"<h4>FDM Username:" & _
"<input type=""text"" id=""uname"" placeholder=""Username (eg: SMITHA)"" required/></h4>" & _
"<center><h5>(eg: WHITEP)</h5></center>" & _
"<br>" & _
"<h4><input class=""button"" name=""button"" type=""button"" value=""Submit Request"" id=""SubBtn"" onclick=""WriteFile()""/></h4>" & _
"</p>"
document.getElementById("uname").focus()
end sub