【问题标题】:Prompt dialog in WSH using JScript?使用 JScript 在 WSH 中提示对话框?
【发布时间】:2010-10-06 15:18:32
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 您好,欢迎来到stackoverflow!没有必要将 [WSH][JScript] 放在您的问题标题中。

标签: prompt jscript wsh windows-scripting


【解决方案1】:

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

【讨论】:

  • 谢谢。这不应该取决于您使用的语言,而是取决于您使用该语言的环境。这看起来像是一个糟糕的设计问题。只是一个想法。
【解决方案2】:

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

【讨论】:

  • 这个问题与浏览器无关。这是关于 Windows Script Host 下的 Windows 脚本。
  • @GetFree 我很确定 aikeru 知道这一点 - 可以从 WSH 调用浏览器作为解决某些问题的可怕方法,这就是他所说的。
  • 是的,杰克·道格拉斯是正确的。我的观点是,虽然可以使用 ActiveX 和 Internet Explorer 创建一个 javascript 弹出窗口,而且我已经看到人们这样做了——但我认为这很糟糕,开销很大,而且有很多潜在的不可预见的问题。我想提出一个替代方案和 WSF(这是选定的答案)。如果我的回答不清楚,我欢迎提出建议,甚至是“编辑”。 :)
  • +1 哇!此解决方案允许 PURE JScript 代码调用 VBScript 函数!这一点比这个关于对话框的话题的答案要重要得多……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-29
  • 1970-01-01
  • 2021-03-20
  • 1970-01-01
  • 2021-10-02
  • 2011-04-01
  • 2011-07-26
相关资源
最近更新 更多