HTA-提交表格后如何关闭HTA



全新使用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>

欢迎来到htas的世界。

简短的答案是,您可以从JavaScript函数中调用CloseWin()(带有括号的VBScript子)。

在测试您的代码时,我会遇到一些错误

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

另外,您需要了解的有关HTA文件的最无能的事情是如何设置文件将使用的Internet Explorer版本。默认情况下,我认为这是7个,所以您会发现像"占位符"这样的最近的HTML将不起作用。您可以使用元标记更改此此操作(请参见下文)。如果您希望VBScript工作,请不要超过10。

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

**更新**

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

我更改了您的Onload子,并在遇到错误时将焦点代码添加到其中,因为JavaScript在VBScript之前正在运行,无法设置焦点。我取出函数setfocustotextbox()

唯一缺少的是,当用户按ENTER 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

相关内容

  • 没有找到相关文章

最新更新