2009-02-10 43 views
12

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

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

谢谢。

+2

嗨欢迎来到stackoverflow!没有必要将[WSH] [JScript]放入问题标题中。 – Albert 2009-02-10 15:51:40

回答

16

我认为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> 
+0

谢谢。 这不应取决于您使用的语言,而应取决于您使用该语言的环境。 这看起来像一个糟糕的设计问题。 只是一个想法。 – GetFree 2009-02-11 03:54:43

11

我知道这个问题已经回答了,但我不希望使用.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

+0

这个问题与浏览器无关。这是关于Windows脚本主机下的Windows脚本。 – GetFree 2012-01-29 22:43:41