首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTA -表单提交后如何关闭HTA

HTA -表单提交后如何关闭HTA
EN

Stack Overflow用户
提问于 2019-03-18 23:38:24
回答 1查看 825关注 0票数 2

对HTA来说完全是新的。我有HTML页面,允许用户提交我们的应用程序之一的密码请求。这一切正常,直到机器升级到Windows10,我不再有权获得对象电子邮件和用户帐户。好消息是,如果我将文件另存为HTA,它可以工作。但是一旦表单被提交,它就会在javascript位上关闭表单,然后表单会被重新加载。如何:在提交按钮上运行一段JavaScript代码,然后关闭HTA?

代码语言:javascript
复制
    <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>
EN

回答 1

Stack Overflow用户

发布于 2019-03-25 06:27:32

欢迎来到HTA的世界。

简而言之,您可以简单地从javascript函数调用closeWin() (带有括号的VBScript子函数)。

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

代码语言:javascript
复制
<input type="button" onclick="myfunction()" language="javascript"/>

此外,关于HTA文件,您需要知道的最重要的事情是如何设置文件将使用的Internet Explorer版本。默认情况下,它是7,所以你会发现最近的HTML如"placeholder“将不起作用。你可以用一个meta标签来改变它(见下文)。如果你想让vbscript工作,不要超过10。

代码语言:javascript
复制
<meta http-equiv="x-ua-compatible" content="ie=10" />

**更新**

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

我更改了onload sub并添加了焦点代码,因为我收到一个错误,因为Javascript在VBScript之前运行,无法设置焦点。我去掉了函数setFocusToTextBox()

唯一缺少的是,当用户按ENTER时,请求不会自动处理,因此他们必须按下按钮。有一种方法可以绕过这一点,但这并不是一个大问题。

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55224973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档