2009-02-10 13 views
12

Cómo abrir un cuadro de diálogo de solicitud en WSH usig JScript ??¿Prompt diálogo en WSH usando JScript?

El único cuadro de diálogo emergente que he encontrado en el documento es el método WshShell.Popup(). Pero necesito una manera de solicitar al usuario que ingrese una cadena, como el método window.prompt() en DOM.

Gracias.

+2

Hola, bienvenidos a stackoverflow! No es necesario poner [WSH] [JScript] en el título de su pregunta. – Albert

Respuesta

16

Creo que el objeto WScript no proporciona dicho método; sin embargo, puede mostrar un cuadro de entrada desde vbscript ejecutándose en WSH. ¡Aquí hay una posible solución que te permite llamar a esa función VB desde dentro de JS! Tenga en cuenta la extensión de archivo para el siguiente fragmento de código ".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

Gracias. Esto no debería depender del idioma que use, sino del entorno en el que usa el idioma. Parece un problema de mal diseño. Solo un pensamiento. – GetFree

11

Sé que esta pregunta ha sido contestada, pero no me gustaría utilizar el material .wsf y yo tampoco sería deseable que la sobrecarga de explorador de Internet de carga (como he visto hacer otras soluciones) . He encontrado esta solución a través de Google que creo que es el más elegante:

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

La clave es usar la ActiveXObject "ScriptControl", configurar el idioma de VBScript y luego usando la función ScriptObject.eval(). El ejemplo en el sitio se sostiene por sí mismo.

EDITAR: Para aquellos que encuentran un error con 64 bit o avance de línea, etc., existe esta versión mejorada con instrucciones sobre cómo ejecutarla (en sistemas como Win7 x64) here.

+0

La pregunta no tiene nada que ver con los navegadores. Se trata de secuencias de comandos de Windows en Windows Script Host. – GetFree

+3

@ GetFree Estoy bastante seguro de que Aikeru lo sabe: un navegador puede ser invocado por WSH ya que una horrible solución para algunas cosas es todo lo que dice. –

+0

Sí, Jack Douglas está en lo cierto. Mi punto es que si bien es posible usar ActiveX e Internet Explorer para crear una ventana emergente de JavaScript y he visto a gente hacer esto, pero creo que es horrible, con muchos gastos generales, mucho potencial para problemas imprevistos. Quería presentar una alternativa tanto para eso como para WSF (que es la respuesta seleccionada). Si mi respuesta no es clara, recibo sugerencias o tal vez incluso una 'edición'. :) – aikeru

Cuestiones relacionadas