使用JScript在WSH中提示对话框?

Get*_*ree 12 prompt wsh windows-scripting jscript

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

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

谢谢.

Aut*_*act 17

我认为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>
Run Code Online (Sandbox Code Playgroud)


aik*_*eru 11

我知道这个问题已得到解答,但我不想使用.wsf的东西,我也不想要加载Internet Explorer的开销(正如我见过其他解决方案那样).我发现使用Google的这个解决方案我认为是最优雅的:

http://with-love-from-siberia.blogspot.com/2009/12/msgbox-inputbox-in-jscript.html

关键是使用ActiveXObject"ScriptControl",将语言设置为VBScript,然后使用ScriptObject.eval()函数.该网站上的示例独立存在.

编辑:对于那些遇到错误与64位或换行等,还有这个改进版本说明如何运行它(像Win7的x64系统)在这里.

  • @GetFree我非常肯定aikeru知道 - 可以从WSH调用浏览器作为一些可怕的解决方法,他正在说的一些东西. (3认同)