如何在 WSH 中使用 JScript 打开提示对话框?
我在文档中找到的唯一弹出对话框是 WshShell.Popup() 方法。但我需要一种方法来请求用户输入字符串,例如 DOM 中的 window.prompt() 方法。
谢谢。
如何在 WSH 中使用 JScript 打开提示对话框?
我在文档中找到的唯一弹出对话框是 WshShell.Popup() 方法。但我需要一种方法来请求用户输入字符串,例如 DOM 中的 window.prompt() 方法。
谢谢。
我认为 WScript 对象不提供这样的方法,但是您可以从在 WSH 上运行的 vbscript 显示一个输入框。因此,这是一种可能的解决方案,可让您从 JS 中调用该 VB 函数!请注意以下代码片段“.wsf”的文件扩展名。
<!-- Test.wsf -->
<job id="InputBoxInJS">
<script language="VBScript">
Function VBInputBox(promptText)
VBInputBox = InputBox(promptText)
End Function
</script>
<script language="JScript">
WScript.Echo("Hello from JScript")
var x = VBInputBox("Enter text")
WScript.Echo(x)
</script>
</job>
我知道这个问题已经得到解答,但我不想使用 .wsf 的东西,我也不想要加载 Internet Explorer 的开销(正如我所看到的其他解决方案所做的那样)。我使用谷歌找到了这个我认为最优雅的解决方案:
http://with-love-from-siberia.blogspot.com/2009/12/msgbox-inputbox-in-jscript.html
关键是使用 ActiveXObject“ScriptControl”,将语言设置为 VBScript,然后使用 ScriptObject.eval() 函数。网站上的示例独立存在。
编辑:对于那些遇到 64 位或换行等错误的人,这里有这个改进的版本,其中包含有关如何运行它的说明(在 Win7 x64 等系统上)。