我想在js中创建一个小词。我是一个新手,所以idk什么是完全错误的。我精通C,C ++和android,但我似乎无法在我的代码中找到问题。
当我使用login命令时,当我在用户名后按Enter键时,它会告诉我无法识别的命令。键入help以获取命令列表。 IDK什么错了。
function command(){
var output = '';
todo = getinput();
if(todo === 'clear'){
document.getElementById('output').innerHTML = '';
return;
}else if(todo =='login'){
var auth = login();
if (auth == 1) output = 'Success';
else output = 'Failed';
} else if(todo.length > 0){
output = 'Unrecognized command. Type <b>help</b> for a list of commands.<hr>';
}
document.getElementById('output').innerHTML = document.getElementById('output').innerHTML + output;}
function login() {
document.getElementById('output').innerHTML = document.getElementById('output').innerHTML + 'User Name: ';
setTimeout(loop, 0);
var uname = getinput();
setTimeout(loop, 0);
document.getElementById('output').innerHTML = document.getElementById('output').innerHTML + '3' + uname + '3' + '<BR>Password: ';
var pass = getinput();
//if (uname == 'root' && pass = 'toor') return 1;
//else return 0;
return 0;}
function getinput(){
var input = document.getElementById('input').value;
document.getElementById('input').value = '';
return input; }
答案 0 :(得分:0)
替换:
output = 'Unrecognized command. Type <b>help</b>
与
output = 'Unrecognized command ('+todo+'). Type <b>help</b>
它可能会返回您的用户名。您的代码不完整,但看起来您正在构建终端。每次执行任何操作时,您的命令()都会执行。这个过程是:
execution 1) var auth = login();
execution 2) command('myUser')
execution 3) todo = getinput();
execution 4) else if(todo.length > 0){
result: myUser is greater than 0, spit out error
我认为你可以从这里解决它。考虑使用jQuery。
编辑:您需要确定什么是命令以及什么是变量输入。您可以设置一个类似“commandLock = true”的变量。每次输入时,如果commandLock为true,它将不执行命令()函数 AGAIN (因为它每次提交终端时都会执行)。
var commandLock=false;
function command() {
if(commandLock==true) return false;
// determine the command
checkCommandAndRunFunction(); // decides to execute login()
}
function login() {
commandLock=true;
var inp = $('#terminalInput').val(); // jQuery
// the rest
}
如果您的循环实际上没有完成脚本,可能您应该使用回调http://recurial.com/programming/understanding-callback-functions-in-javascript/ 或http://www.w3schools.com/jquery/jquery_callback.asp