Вопрос

Как открыть диалоговое окно подсказки в WSH с помощью JScript??

Единственное всплывающее диалоговое окно, которое я нашел в документе, — это метод WshShell.Popup().Но мне нужен способ попросить пользователя ввести строку, например метод window.prompt() в DOM.

Спасибо.

Это было полезно?

Решение

Я думаю, что объект WScript не предоставляет такого метода, однако вы можете показать поле ввода из vbscript, работающего на WSH.Итак, вот одно из возможных решений, которое позволит вам вызывать эту функцию VB из JS!Обратите внимание на расширение файла для следующего фрагмента кода «.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>

Другие советы

Я знаю, что на этот вопрос был дан ответ, но я бы не хотел использовать файлы .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). здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top