정규 html 텍스트 필드에 명령을 입력 할 수있는 설정이 있습니다. 텍스트 필드에서 onkeypress 이벤트를 처리하고, 눌려진 입력 키인지 확인하고, 구문 분석 및 명령을 실행합니다.프롬프트를 사용하지 않고 javascript에서 사용자 입력 받기
예는 수 :
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는 commandstring을 구문 분석하고 적절한 인수를 사용하여 특정 명령을 호출합니다.
> 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?");
을,하지만 난 프롬프트를 사용하지 않으 :
는 내가 함께 할 수있어.
var status = doSomeStuff(args);
if (status.fail) {
tmp = getUserInput();
doSomeFinalStuffBasedOnTheUserInput(tmp);
}
이 가능하다조차 :
같은 사람이 (프롬프트 사용하지 않는) 자바 스크립트의 중간에 유저에게 입력을 요구하는 좋은 방법을 알고 있나요, 내 인위적인 예를 잊고?
내가 여기에 자신을 설명 할 수 있어요,하지만 아무도 그들이 어떤 식 으로든 나를 도울 수 있다고 생각하면
하나 개의 솔루션은 글로벌 상태 변수를 구현할 수 :-) 알려 주시기 바랍니다 모르겠어요 하고 명령에 경로에 키 누름 - 이벤트 핸들러의 메커니즘으로 입력이 사용하는, 뭔가 같은 : 내 "응용 프로그램이"내부 상태 변수에 처리하고 키 누름 사이의 currentCommand를 저장해야 이런 식으로
inputControl.onkeypress = function(e) {
if (e.which == 13) {
if (state.additionalInputPending && currentCommand != null) {
currentCommand.executeWithAdditionalInput();
} else {
// perform regular command execution
}
}
}
.
예, 내가 찾고있는 것은 명령 줄 도구를 모방하는 솔루션입니다. 현재 설정은 상태 비 저장이므로 이전에 실패한 명령 실행 시도에 추가 정보를 라우팅 할 방법이 없습니다. 나는 옛날 텍스트 모험에이 능력이 있음을 안다. '> take >> 무엇을하고 싶니? > 빨간 책 >> 예약 가져 오기 (줄 바꿈을 추가 할 수 없음) – Thomas
추적을 유지하고 전체 명령이 만들어 질 때만 실행되는 '스택'또는 입력 변수를 만들어야합니다. 그것은 당신이 위에서 한 것과 비슷합니다. 상태가 실패하면 추가 입력을 얻은 다음 doSomeStuff를 다시 호출하십시오. 다시 실패 할 경우, 완료 될 때까지 더 많은 입력을 요청하십시오. 이것을 없애기 위해서는 기존 args를 추적하고 새 args를 병합하면됩니다. 그리고 만약 그들이 취소 (Ctrl 키를 + C를 예를 들어) 다음 그냥 args를 버리고 다시 프롬프트. 아주 간단한 워크 플로우 여야합니다. –