代码之家  ›  专栏  ›  技术社区  ›  GetFree

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

  •  12
  • GetFree  · 技术社区  · 17 年前

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

    谢谢

    2 回复  |  直到 12 年前
        1
  •  18
  •   Sandeep Datta    17 年前

    我认为WSScript对象不提供这样的方法,但是您可以显示运行在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>
    
        2
  •  12
  •   Raymond Tau    10 年前

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