Window.prompt()

 Window.prompt()는 사용자가 텍스트를 입력할 수 있도록 안내하는 메시지가 적힌 대화 상자를 띄웁니다. 그 메시지는 지정할 수 있습니다.

구문

result = window.prompt(message, default);
  • result는 그 사용자가 입력한 텍스트이거나 null입니다.
  • message는 그 사용자에게 보일 텍스트의 문자열입니다. 그 대화 상자에 보일 텍스트가 없게 하려면 이 인자를 무시하면 됩니다.
  • default는 텍스트 입력부(필드)에 기본적으로, 즉 맨 처음에 보일 문자열입니다. 이 인자는 무시할 수 있습니다마는, 당신이 이 인자에 해당하는 인수를 지정하지 않을 경우에는 Internet Explorer 7 또는 8에서 문자열 "undefined"가 기본 문자열로 지정됩니다.

예제

var sign = prompt("당신의 별자리는 무엇입니까?");

if(sign === "전갈자리") alert("와! 저도 전갈자리예요!");

// prompt 기능을 쓰는 방법은 다양합니다.
var sign = window.prompt(); // 빈 대화 상자를 엽니다.
var sign = prompt(); // 빈 대화 상자를 엽니다.
var sign = window.prompt("님 지금 기분 좋아요?"); // 안내 문구 "님 지금 기분 좋아요?"가 보이는 창을 띄웁니다.
var sign = window.prompt("님 지금 기분 좋아요?", "네."); // 안내 문구 "님 지금 기분 좋아요?"가 보이는 창을 띄우되 기본적으로 입력되어 있는 값은 "네."로 합니다.

 사용자가 확인(OK) 버튼을 누를 때에 그 입력부에 입력된 텍스트 문자열이 반환됩니다. 만약 사용자가 아무 것도 입력하지 않고 확인(OK) 버튼을 누르면 빈 문자열이 반환됩니다. 만약 사용자가 취소(Cancel) 버튼을 누르면 이 함수는 null을 반환합니다.

 상기의 대화 상자는 OS X 상의 Chrome에서 다음과 같이 보입니다.

prompt() dialog in Chrome on OS X

비고

 대화 상자는 한 줄의 텍스트 상자·한 개의 취소(Cancel) 버튼·한 개의 확인(OK) 버튼을 갖고, 그 사용자가 그 텍스트 상자에 입력한 텍스트 문자열(이 값은 빈 문자열 ""이 될 수 있습니다.)을 반환합니다.

 대화 상자는 modal window(부모 창으로 돌아가기 전에 사용자의 상호 작용을 요구하는 자식 창)입니다. 따라서 대화 상자는 그 대화 상자가 닫힐 때까지 그 사용자가 그 대화 상자를 제외한 환경(interface), 즉 그 프로그램(웹 브라우저 등)의 나머지 환경에 접근할 수 없게 만듭니다. 이러한 이유 때문에 당신은 대화 상자( 또는 modal window)를 만드는 함수를 남용하면 안 됩니다.

 이 함수가 반환하는 값은 문자열 또는 null이라는 점을 명심하십시오. 이는 사용자가 입력한 값을 다른 자료형으로 바꿔야 할 때가 있음을 뜻합니다. 예를 들어, 만약 사용자의 대답이 Number 형 값이 되어야 한다면 Number 당신은 그 값을 Number 형으로 바꾸어야 합니다. var aNumber = Number(window.prompt("수를 입력하세요.", ""));

 Mozilla Chrome 사용자(Firefox 확장 프로그램 등)는 이것 대신에 nsIPromptService의 메소드를 써야 합니다.

 Chrome 46.0부터, 이 메소드는 <iframe>에서 사용될 경우에 그 <iframe>의 sandbox 속성에 allow-modal이 없으면 작동하지 않습니다.

 Safari에서, 만약 사용자가 취소(Cancel) 버튼을 누르면 그 함수는 빈 문자열 ""을 반환합니다. 따라서 사용자가 그 텍스트 상자에 빈 문자열을 입력한 것과 구분할 수 없습니다.

 이 함수는 Windows 8용 Internet Explorer의 Modern UI 및 Metro 버전에서 효과가 없습니다. 이는 사용자에게 대화 상자를 보이지 않고 항상 undefined를 반환합니다. 이게 버그인지 의도한 기능인지는 불분명합니다. Internet Explorer의 Desktop 버전에서는 이 함수가 존재합니다.

명세

명세 상태 비고
HTML5 Web application
The definition of 'prompt()' in that specification.
Unknown Initial definition.

관련 문서

문서 태그 및 공헌자

 이 페이지의 공헌자: K._
 최종 변경: K._,