gpt4 book ai didi

javascript - HTA - 如何在提交表单后关闭 HTA

转载 作者:行者123 更新时间:2023-11-28 00:37:45 26 4
gpt4 key购买 nike

全新的 HTA。我有 HTML 页面,允许用户为我们的一个应用程序提交密码请求。在机器升级到 Windows 10 之前一切正常,我不再有权获取对象电子邮件和用户帐户。好消息,如果我将文件另存为 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>

最佳答案

欢迎来到 HTA 的世界。

简短的回答是,您可以简单地从您的 javascript 函数中调用 closeWin()(带括号的 vbscript 子程序)。

在测试您的代码时我遇到了一些错误,因为调用函数 onsubmit 和 onclick 的 html 部分需要在标记中指定语言

<input type="button" onclick="myfunction()" language="javascript"/>

此外,关于 HTA 文件,您需要了解的最重要的事情是如何设置该文件将使用的 Internet Explorer 版本。默认情况下它是 7 我认为所以你会发现像“占位符”这样的更新的 HTML 将不起作用。您可以使用元标记更改此设置(见下文)。如果您希望 vbscript 正常工作,请不要超过 10。

<meta http-equiv="x-ua-compatible" content="ie=10" />

**更新**

我查看了您更新后的代码,打开浏览器的是表单提交。您真的不需要表单来提交,甚至不需要在表单中包含文本框和按钮。

我更改了您的 onload sub 并向其添加了焦点代码,因为我遇到了一个错误,因为 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

关于javascript - HTA - 如何在提交表单后关闭 HTA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55224973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com