Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vbscript 当用户按下';Esc&x27;钥匙_Vbscript_Hta_Onkeyup - Fatal编程技术网

Vbscript 当用户按下';Esc&x27;钥匙

Vbscript 当用户按下';Esc&x27;钥匙,vbscript,hta,onkeyup,Vbscript,Hta,Onkeyup,我试图捕捉按键,以便在用户按下Esc键时关闭HTA 我已确认onKeyUp事件有效(我还捕获了输入的长度),并且下面的示例不起作用(通过添加未触发的MsgBox) 我错过了什么 Sub window_onKeyUp() If window.event.keyCode = 27 Then Call CloseHTA() End If End Sub 这对我有用 <script language="VBScript"> Sub TestKey

我试图捕捉按键,以便在用户按下Esc键时关闭HTA

我已确认
onKeyUp
事件有效(我还捕获了输入的长度),并且下面的示例不起作用(通过添加未触发的
MsgBox

我错过了什么

Sub window_onKeyUp()

    If window.event.keyCode = 27 Then
        Call CloseHTA()
    End If

End Sub
这对我有用

<script language="VBScript">
    Sub TestKey()
        intKeyCode = Window.Event.Keycode
        If intKeyCode = 27 Then Window.Close
    End Sub
</script>

<body onkeyup="TestKey">
</body>

您可以这样尝试:

<html>
<script language="VBScript">
    Sub TestKey()
        intKeyCode = Window.Event.Keycode
        If intKeyCode = 27 Then Call CloseHTA()
    End Sub
    Sub CloseHTA()
        self.close
    End Sub
</script>

<body onkeyup="TestKey">
</body>
</html>

子测试键()
intKeyCode=Window.Event.Keycode
如果intKeyCode=27,则调用CloseHTA()
端接头
分包协议()
自我封闭
端接头

谢谢,这确实有效,但这意味着我必须为这个函数包含一个单独的
块。是否无法在VBS中将其声明为事件?像
window\u onLoad
window\u onbeforeuload
这样的操作很好。为什么不直接将
Sub TestKey()
添加到现有的脚本块中呢?我只是用这种方式展示它的完整性。我所有的块都在文档的页脚中。显示一个初始页面,然后代码运行它很神奇,因为我操纵了显示(显示/隐藏div、更改背景颜色等),所以必须在HTML之后声明此代码,否则它会失败。我明白了。是的,您可以改用
Document\u OnKeyUp()
。我会更新我的答案。谢谢,太好了。我试过
document.body\u onKeyUp()
(错误),还设置了一个对象
Set docBody=doucment.body
docBody\u onKeyUp()
(无效),但没有想到这个盲目简单的解决方案!你有两个结束标记。我明白你的意思,谢谢你花时间回答。
<html>
<script language="VBScript">
    Sub TestKey()
        intKeyCode = Window.Event.Keycode
        If intKeyCode = 27 Then Call CloseHTA()
    End Sub
    Sub CloseHTA()
        self.close
    End Sub
</script>

<body onkeyup="TestKey">
</body>
</html>