브라우저는 사용자와 상호작용할 수 있는 세 가지 함수를 제공합니다.
alert
메시지를 보여줍니다.prompt
사용자에게 텍스트를 입력하라는 메시지를 띄워줌과 동시에, 입력 필드를 함께 제공합니다. 확인을 누르면 prompt
함수는 사용자가 입력한 문자열을 반환하고, 취소 또는 Esc를 누르면 null
을 반환합니다.confirm
사용자가 확인 또는 취소 버튼을 누를 때까지 메시지가 창에 보여집니다. 사용자가 확인 버튼을 누르면 true
를, 취소 버튼이나 Esc를 누르면 false
를 반환합니다.위 함수들은 모두 모달 창을 띄워주는데, 모달 창이 떠 있는 동안은 스크립트의 실행이 일시 중단됩니다. 사용자가 창을 닫기 전까진 나머지 페이지와 상호 작용이 불가능합니다.
지금까지 살펴본 세 함수엔 두 가지 제약사항이 있습니다.
브라우저에서 제공하는 `prompt` 함수는 두 개의 인수를 받습니다.
`result = prompt(title, [default]);`
함수가 실행되면 텍스트 메시지와 입력 필드(input field), 확인(OK) 및 취소(Cancel) 버튼이 있는 모달 창을 띄워줍니다.
- `title`사용자에게 보여줄 문자열
- `[default]`입력 필드의 초깃값(선택값)
두번째 매개변수는 선택사항이지만 매개변수가 없는 경우 IE는 `"undefined"`를 입력 필드에 명시합니다. 때문에 IE 사용자를 비롯한 모든 사용자에게 깔끔한 프롬프트를 보여주려면 아래와 같이 두 번째 매개변수를 항상 전달해 줄 것을 권장합니다.
`let test = prompt("Test", ''); // <-- IE 사용자를 위한 매개변수 처리`