在不使用提示的情况下获取javascript中的用户输入



我有一个设置,允许用户在常规html文本字段中键入命令。我处理文本字段上的onkeypress事件,检查它是否是已按下的回车键,然后解析并执行命令。

例如:

deletefile /testfolder/testfile.html

代码看起来像这样:

inputControl.onkeypress = function(e) { 
if (e.which == 13) { 
var outputMessage = commandHandler.executeCommand(inputControl.value);
printOutputToScreen(outputMessage);
inputControl.value = "";
inputControl.focus();
}
}

(顺便说一句,这不是我的代码的实际样子,它只是一个例子)

这里的想法是能够编写一个命令,查看输出,编写另一个命令、查看输出等。

executeCommand解析命令字符串,并使用适当的参数调用特定的命令。

> deletefile /test1.html
The file was deleted
> deletefile /test2.html
An error occured while trying to delete the file

这部分很简单。我需要帮助的是:如果用户只键入"deletefile",我希望能够询问用户(使用outputarea)"你想删除哪个文件?"。

我知道我可以用做到这一点

var additionalInput = prompt("Which file?");

,但我不想使用提示。

忘记我虚构的例子,有人知道在javascript(不使用提示)中间请求用户输入的好方法吗,比如:

var status = doSomeStuff(args);  
if (status.fail) {
tmp = getUserInput();  
doSomeFinalStuffBasedOnTheUserInput(tmp);
}

这可能吗?

我不确定我是否能在这里解释自己,但如果有人觉得他们可以在某种程度上帮助我,请告诉我:-)

一种解决方案可以是实现一个全局状态变量,并将其用作按键事件处理程序中的一种机制,将输入路由到命令,类似于:

inputControl.onkeypress = function(e) {
if (e.which == 13) {
if (state.additionalInputPending && currentCommand != null) {
currentCommand.executeWithAdditionalInput();
} else {
// perform regular command execution
}
}
}

通过这种方式,我的"应用程序"需要处理内部状态变量,并在按键之间存储currentCommand。

您可以使用jquery/javascript解决方案,其中显示"花式"对话框(而不是JS提示)来请求输入。

http://trentrichardson.com/Impromptu/#Examples最后一个例子展示了表单。Impromptu只是对话框/提示选项的众多(许多)解决方案之一。

唯一能想到的其他选项是直接在JS控制台中执行,您正在创建的JS控制台更像是一个真正的命令行工具。

相关内容

  • 没有找到相关文章