2009-02-10 8 views
12

Comment ouvrir une boîte de dialogue d'invite dans WSH avec JScript ??Boîte de dialogue d'invite dans WSH à l'aide de JScript?

La seule boîte de dialogue contextuelle que j'ai trouvée dans le document est la méthode WshShell.Popup(). Mais j'ai besoin d'un moyen de demander à l'utilisateur d'entrer une chaîne, comme la méthode window.prompt() dans DOM.

Merci.

+2

Salut bienvenue à stackoverflow! Il n'est pas nécessaire de mettre [WSH] [JScript] dans le titre de votre question. – Albert

Répondre

16

Je pense que l'objet WScript ne fournit pas une telle méthode, mais vous pouvez afficher une boîte de saisie de vbscript s'exécutant sur WSH. Voici donc une solution possible qui vous permet d'appeler cette fonction VB depuis JS! Veuillez noter l'extension de fichier pour le fragment de code suivant ".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

Merci. Cela ne doit pas dépendre de la langue que vous utilisez, mais de l'environnement dans lequel vous utilisez la langue. Cela ressemble à un problème de conception mauvaise. Juste une pensée. – GetFree

11

Je sais que cette question a été répondu, mais je ne voudrais pas utiliser les trucs .wsf et je ne voudrais pas aussi les frais généraux de l'explorateur Internet de chargement (comme je l'ai vu d'autres solutions font) . J'ai trouvé cette solution avec Google que je pense est le plus élégant:

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

La clé utilise le ActiveXObject « ScriptControl », le réglage de la langue VBScript, puis en utilisant la fonction ScriptObject.eval(). L'exemple sur le site est indépendant.

EDIT: Pour ceux qui rencontrent une erreur avec le 64 bits ou le saut de ligne, etc., il y a cette version améliorée avec des instructions sur la façon de l'exécuter (sur des systèmes comme Win7 x64) here.

+0

La question n'a rien à voir avec les navigateurs. Il s'agit de scripts Windows sous Windows Script Host. – GetFree

+3

@GetFree Je suis sûr qu'Aikeru le sait - un navigateur peut être invoqué à partir de WSH comme une horrible solution de contournement pour certains trucs, c'est tout ce qu'il dit. –

+0

Oui, Jack Douglas a raison. Mon point est que bien qu'il soit possible d'utiliser ActiveX et Internet Explorer pour créer un popup javascript et j'ai vu des gens le faire - mais je pense que c'est horrible, beaucoup de frais généraux, beaucoup de potentiel pour des problèmes imprévus. Je voulais présenter une alternative à la fois et WSF (qui est la réponse sélectionnée). Si ma réponse n'est pas claire, j'accueille les suggestions ou peut-être même un «edit». :) – aikeru

Questions connexes