14

如何在 WSH 中使用 JScript 打开提示对话框?

我在文档中找到的唯一弹出对话框是 WshShell.Popup() 方法。但我需要一种方法来请求用户输入字符串,例如 DOM 中的 window.prompt() 方法。

谢谢。

4

2 回答 2

19

我认为 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>
于 2009-02-10T15:30:59.790 回答
12

我知道这个问题已经得到解答,但我不想使用 .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 等系统上

于 2012-01-07T20:38:24.147 回答