JavaScript에는 스크립트에서 추가 처리를 위해 사용자로부터 데이터를 수신할 수 있는 세 가지 기본 작업이 있습니다. 이들은 경고, 프롬프트 및 확인입니다. 사용 목적, 사용 방법 및 기타 뉘앙스는 이 기사의 뒷부분에서 설명합니다.

알리다

브라우저 화면에 모달 창을 표시하는 데 사용됩니다(이는 사용자가 이 창을 닫을 때까지 페이지에서 아무 것도 클릭할 수 없음을 의미합니다. 이 예에서는 창에서 "확인"을 클릭할 때까지).

경고에 포함된 메시지를 표시한 후 스크립트 실행이 일시 중단되고 모달 창이 닫힌 후 다시 시작됩니다.

채우는 경우필드를 입력하고 확인을 클릭하면 스크립트는 사용자가 입력한 정보를 반환합니다.

이 명령의 구문사용자의 이의 제기 텍스트와 기본적으로 표시되는 정보 입력 필드의 내용을 설정할 수 있기 때문에 이전 것보다 다소 복잡합니다. = 프롬프트(제목, 기본값) ;, 어디

  • 제목- 모달 창에서 사용자에게 표시될 메시지입니다. 인수는 필수 항목입니다.
  • 기본- 기본적으로 텍스트 입력 필드에 표시될 내용입니다. 또한 설정하지 않으면 일부 브라우저에서 오류가 발생할 수 있으므로 반드시 입력해야 합니다. 입력 필드를 비워 두려면 다음과 같이 프롬프트를 설정하십시오.

    var myTest = prompt("모든 정보" , """);

작은 프롬프트 사용 예:

var 연도 = 프롬프트( "당신은 고등학교를 몇 학년에 졸업했습니까?", 2008); alert("당신은 올해의 " + year + " 졸업생입니다!" ) ;

일반적으로 이 명령은 스크립트가 추가 작업을 계속하는 데 필요한 데이터를 사용자로부터 수집하는 데 사용됩니다.

확인하다

또한 나타냅니다 모달 창. 이름에서 유추하기 어렵지 않기 때문에 일반적으로 사용자와 무언가에 동의할 때 사용합니다.

이를 위해 날카롭게 - 상호 작용을 위해 스크립트에 부울 값 true 및 false를 각각 반환하는 OK 및 CANCEL 버튼을 사용자에게 제공합니다. 등급: 4(평균 4/5)

이번 강의에서는 window 객체의 메소드인 alert() , prompt() , Confirm() 에 대해 알아보겠습니다.

경고() 메서드

alert() 메서드는 사용자 화면에 지정된 메시지와 확인 버튼이 있는 경고 대화 상자를 표시하기 위한 것입니다. 중요한 정보를 사용자에게 전달하는 데 사용할 수 있습니다.

window.alert(매개변수_1);

alert() 메서드에는 대화 상자에 표시되는 메시지 텍스트인 하나의 필수 매개 변수가 있습니다. 이 메서드는 실행 결과로 아무 것도 반환하지 않습니다.

예를 들어 링크를 클릭할 때 사이트 방문자에게 경고 대화 상자를 표시해 보겠습니다. 사이트로 이동

확인() 메서드

윈도우 객체의 확인() 메서드는 사용자 화면에 지정된 메시지와 확인 및 취소 버튼이 있는 대화 상자를 표시하기 위한 것입니다. 확인 창을 사용하여 사용자에게 작업을 수행할 수 있는 권한을 요청할 수 있습니다.

var resultConfirm = 확인(매개변수_1);

이 메서드에는 대화 상자에 표시될 메시지 텍스트라는 매개 변수가 하나 있습니다.

확인() 메서드는 실행 결과(resultConfirm)로 두 값 중 하나를 반환합니다.

  • 사용자가 확인을 클릭하면 true이고, 그렇지 않으면 false입니다.
  • 사용자가 취소를 클릭하거나 닫은 경우 false입니다.

예를 들어, 사용자가 대화 상자에서 "확인" 버튼을 클릭한 결과를 id="resultConfirm"인 p 요소에 표시해 보겠습니다.

프롬프트() 메서드

prompt() 메서드는 사용자 화면에 메시지, 데이터 입력을 위한 텍스트 필드, "확인" 및 "취소" 버튼이 있는 대화 상자를 표시하도록 설계되었습니다. 사용자에게 데이터를 요청하기 위한 것입니다.

var resultPrompt = 프롬프트(매개변수_1, 매개변수_2);

이 메서드에는 두 가지 매개변수가 있습니다.

  • 대화 상자에 표시할 메시지. 이 매개변수는 필수이며 사용자가 텍스트 필드에 입력해야 하는 데이터를 "말하는" 메시지를 포함합니다.
  • 두 번째 매개변수는 선택 사항이며 대화 상자가 열릴 때 대화 상자의 입력 필드에 표시될 초기 값을 지정하는 데 사용할 수 있습니다.

사용자의 작업에 따라 prompt() 메서드는 다음 데이터를 반환할 수 있습니다.

  • 텍스트 값 - 입력 필드에 데이터가 포함되어 있고 사용자가 "확인"을 클릭한 경우.
  • 빈 문자열 - 입력 필드에 데이터가 없고 사용자가 "확인"을 클릭한 경우.
  • null - 사용자가 "취소"를 클릭하거나 이 창을 닫은 경우 텍스트 필드에 입력된 데이터는 중요하지 않습니다.

참고: alert() , Confirm() 또는 prompt() 메서드 중 하나를 실행한 결과로 나타나는 대화 상자는 모달입니다. 사용자가 대화 상자를 닫을 때까지 상위 응용 프로그램(브라우저)에 대한 사용자의 액세스를 차단합니다.

예를 들어 사용자에게 이름을 묻고 결과에 따라 c id="nameUser" 요소에 텍스트를 표시합니다.

예를 들어 사용자에게 숫자 8을 추측하도록 요청해 보겠습니다.

... 숫자를 맞춰봐

이 기사에서는 세 가지 흥미로운 방법, 즉 경고(), 확인() 및 프롬프트() 메서드. 그들은 모두 사용자 상호 작용을 위한 것.

이 세 가지 메서드는 모두 창 개체에 속합니다. 그리고 다음과 같이 호출할 수 있습니다. window.method_name(); 그러나 JavaScript에서는 이 창 개체를 지정하지 않고 단순히 메서드 이름을 쓸 수 있습니다.

alert() 메소드부터 시작하겠습니다. 이 메서드는 사용자의 브라우저 창에 지정된 메시지를 표시합니다. 이 상자는 전체 페이지 상단에 표시되며 사용자가 확인 버튼을 클릭할 때까지 닫히지 않습니다.

시연하기 위해 alert() 메서드를 사용하여 일부 메시지를 표시해 보겠습니다.

var Today_is = "월요일"; alert("오늘은 " + Today_is);


메서드 내에서 문자열을 지정할 수 있습니다. HTML 태그오. 여기에서 처리되지 않고 있는 그대로 표시됩니다.

지정하려는 문자열이 매우 길고 다음으로 이동하려는 경우 새로운 라인, 다음은 html 태그입니다.
작동하지 않습니다. 여기서 "\n" 문자를 사용해야 합니다.

Alert("으어어어엉 \nStringgggggg");


이 방법이 자주 사용됩니다 코드에서 오류를 찾으려면.

코드를 처리하는 과정은 위에서 아래로 진행되기 때문에 오류를 잡기 위해 오류가 있는 의도된 영역에 alert() 메서드를 작성하면 됩니다. 그리고 alert()가 작동했다면 그것이 쓰여진 줄까지 오류가 없습니다.

다음으로 한 줄 이상 아래로 이동해야 합니다. 변경 사항을 저장하고 브라우저에서 페이지를 다시 새로 고친 다음 alert()가 작동했는지 확인합니다. 작동하지 않으면 오류는 현재 위치 위의 줄에 있습니다.. 이런 식으로 코드에서 오류를 찾을 수 있습니다.

확인() 메서드

이 방법은 일부 질문에 대한 답변을 확인하는 데 사용됩니다. 예(확인) 또는 아니오(취소/취소)의 두 가지 응답 옵션만 있습니다. 사용자가 예라고 대답하면 메서드는 true를 반환하고 그렇지 않으면 false를 반환합니다.

예를 들어, 확인() 메서드를 사용하여 창을 표시하고 사용자에게 "페이지를 떠나시겠습니까?"라고 묻습니다. 사용자가 예라고 대답하면 alert() 메서드를 통해 "사용자가 페이지를 떠나고 싶어합니다"라는 메시지를 표시하고, 그렇지 않으면 "사용자가 페이지를 떠나고 싶지 않습니다"라는 또 다른 메시지를 표시합니다.

Var user_answer = confirm("페이지를 종료하시겠습니까?"); if(user_answer) alert("사용자가 페이지를 떠나고 싶어합니다."); else alert("사용자가 \n페이지를 떠나기를 원하지 않습니다.");


이것이 확인() 메서드가 작동하는 방식입니다. 그것은 다른 경우에 사용할 수 있습니다. 예를 들어 사이트에서 무언가를 삭제하기 전에 사용자에게 자신의 행동에 대해 확신하는지 묻는 것이 일반적입니다. 또는 양식을 제출하기 전에 사용자에게 "모든 것을 올바르게 작성하셨습니까?"라고 물어볼 수도 있습니다. 예라고 답하면 양식이 전송되고 그렇지 않으면 전송되지 않습니다.

프롬프트() 메서드

그리고 마지막으로 배울 메소드는 prompt() 메소드입니다. 이 방법은 다른 두 가지 방법보다 덜 자주 사용됩니다. 그것은 당신이 텍스트 필드에 입력할 사용자로부터 일부 정보를 얻을 수 있습니다.

결과적으로, prompt() 메서드는 사용자가 확인 버튼을 클릭한 경우 입력 문자열을 반환하고 사용자가 취소 버튼을 클릭한 경우 null을 반환합니다.

매개변수로, 즉 괄호 안에 이 방법사용자에게 어떤 정보를 입력해야 하는지 알려주는 프롬프트나 질문을 작성할 수 있습니다.

예를 들어 사용자에게 "이름이 무엇입니까?"라는 질문에 대답하도록 요청해 보겠습니다. 사용자가 입력한 이름은 alert() 메서드를 사용하여 화면에 표시됩니다.

Varname = prompt("이름이 무엇입니까?"); alert("당신의 이름은 " + name);

브라우저에서 페이지를 저장하고 엽니다.


물론 프롬프트() 메서드에서 텍스트 필드에 모든 정보를 입력할 수 있습니다. 이 정보는 숫자나 기타 특수 문자의 경우에도 문자열로 반환됩니다.

예를 들어, 사용자에게 나중에 곱하기 위해 두 개의 숫자를 입력하라고 합시다. 숫자를 곱하는 계산기가 있습니다.

Var x = prompt("첫 번째 숫자를 입력하세요:"); var y = prompt("두 번째 숫자를 입력하세요:"); //입력된 숫자를 문자열형에서 숫자형으로 변환 x = Number(x); y = 숫자(y); document.write(x + " * " + y + " = " + (x * y));

입력된 숫자는 문자열이므로 정확한 곱셈 결과를 얻으려면 이 숫자를 문자열 유형에서 일반 숫자로 변환하는 Number() 함수를 통해 전달해야 합니다.

그게 다야. 이제 세 가지 방법을 더 알고 있습니다. 경고(), 확인() 및 프롬프트(). 실전에서 안전하게 사용할 수 있습니다.

  • 창 개체 메서드;
  • alert() 메소드: 짧은 요약;
  • 확인() 메서드 - 편지 쓰기;
  • prompt() 메서드 - 친해지자, 저는 Stirlitz입니다.

그래서, 브라우저 객체. 그리고 무엇보다도 - 그들 중 가장 오래된 것, 물체 창문.

다음은 객체의 주요 메소드입니다. 창문(그 외에 다른 것도 있지만 거의 쓸모가 없으며 불필요한 정보로 두뇌를 어지럽히 지 않기 위해 세 번째 시리즈로 미루겠습니다.)

방법

설명

브라우저 창을 열고 닫습니다. 창의 크기, 내용 및 존재 여부를 결정할 수 있습니다. 키패드, 주소 필드 및 기타 속성.

해당 메시지가 있는 알람 대화 상자의 모양.

"확인" 및 "취소" 버튼이 있는 확인 대화 상자의 모양.

텍스트 입력 필드가 있는 프롬프트 대화 상자의 모양.

창에 대한 포커스를 설정하거나 제거합니다.

창의 내용을 특정 지점으로 스크롤합니다.

함수 호출과 표현식 평가 사이의 시간 간격을 설정합니다.

함수 호출 또는 표현식 평가 전에 1회 간격을 설정합니다.

우리는 이미 알고 있습니다 창문종종 암시되지만 철자는 아닙니다.

다양한 대화 상자 불러오기

대화 상자는 프로그램에서 사용자와 상호 작용하는 데 사용됩니다.

경고() 메서드

우리는 연구 초기에 그것을 분석했습니다. 메시지와 확인 버튼이 있는 간단한 대화 상자를 만듭니다. 모든 상호 작용은 사용자가 이 단일 버튼을 눌러 이 창을 멀리 떨어진 곳으로 보낼 수 있다는 사실로 제한됩니다(감사합니다).

확인() 메서드

방법 확인하다()이미 사용자가 "예" 또는 "아니오"라고 말하는 가장 간단한 "부울" 결정을 내릴 수 있습니다.

예를 들어 다음 버튼을 클릭합니다.

작은 장난 죄송합니다. 뒤로가기 버튼 사용법을 숙지하시길 바랍니다.

모든 것이 어떻게 정리되어 있습니까? 물론 이 방법을 경고와 결합한 것을 보셨을 것입니다. 그리고 이것은 삽입된 함수의 도움으로 수행됩니다. .

이 메서드는 다음 두 값을 반환합니다. 진실(확인된 경우) 및 거짓(취소된 경우).

진실해당 페이지(속성 href물체 위치) 해당하는 출력 알리다(). 그렇지 않으면(즉. 거짓) 그냥 다른 출력 알리다().

그리고 버튼에서 이벤트의 함수를 호출합니다. 온클릭:

그런 다음 이벤트 핸들러에서 이 함수를 호출해야 합니다. 제출시꼬리표

, 예를 들어:

"http://narod.yandex.ru/send-poll.xhtml"방법 = "게시" 제출에= "return ConfirmAction()" >

예를 들어 여기에서 내 수업에 대해 생각하는 모든 것을 "비누"에 쓸 수 있습니다. 갑자기 흥분해서 버튼을 눌렀다가 어쩐지 어색해지면 대화창이 뜨고 정신이 번쩍 든다.

팝업을 사용하는 경우 사용자에게 경고하고 창을 열지 여부를 선택할 수 있도록 하는 것이 좋습니다. 이렇게 하려면 창을 로드하기 전에 "의회" 대화 상자를 해제해야 합니다. 확인하다(). 여기에서 함수가 호출됩니다. . 이 방법을 사용하여 창을 만드는 방법으로 이동할 때 곧 이에 대해 이야기하겠습니다. 열려 있는().

프롬프트() 메서드

이 방법은 이미 사용자에게 특정 데이터를 묻는 메시지를 표시합니다. 입력 필드가 있는 대화 상자가 나타납니다. 이 메서드는 사용자가 이 필드에 입력한 데이터를 반환하고 프로그램이 이 데이터로 작업할 수 있도록 합니다.

방법에서 즉각적인()두 개의 인수: 질문(입력 필드 위에 표시됨) 및 답변(입력 필드의 텍스트):

입력 필드를 깔끔하게 표시하려면 두 번째 인수로 빈 따옴표를 넣으십시오.

즉각적인("질문 텍스트","")

실제로 이것을 봅시다. 버튼을 누르십시오. 두려워하지 마십시오.

따라서 데이터를 입력(또는 입력하지 않음)하고 이 데이터(또는 데이터 부족)를 기반으로 컴퓨터로부터 응답을 받았습니다.

다음은 이 함수의 간단한 버전입니다.

재산 내부HTML태그의 내용을 제어할 수 있는 , 우리는 10과에서 사진 아래에 이름을 프로그래밍할 때 만났습니다.

다음은 버튼의 코드와 인사말의 빈 단락입니다.


그러나 당신이 내 이름을 딴 것으로 밝혀지면 함수도 이에 반응하는 것을 보았을 것입니다.

"거친"버전에서이 작업을 수행하는 방법은 이미 스스로 추측할 수 있습니다. 변수 확인 필요 사용자 이름빈 따옴표뿐만 아니라 " 앤드류"하고 하나 더 추가 만약에적절한 텍스트와 함께(당신은 스스로 연습할 수 있습니다).

하지만 "를 입력하면 앤드류", "안드류샤", "안드리슈카", "안류카", "안드레이카", "안드레이 이바노비치" 등의 경우 결과가 비슷할 것입니다. 이 모든 값을 명시적으로 살펴보지는 않았지만 다섯 줄만 관리했습니다. " 안드레", "앤드류", "앤드류", "안드레이슈" 그리고 " 안드레이추"(마지막 3개 - Andreev, Andreichenko 및 Andreichuk을 이름에서 제외하고 Andreichik는 이름에서 제외하기 위해).

즉, 함수가 변수를 확인한다고 추측할 수 있습니다. 사용자 이름처음 5, 6 또는 8자.

그러나 우리는 이것에 대해 조금 후에 string 객체와 그 메소드로 넘어갈 때 이야기할 것입니다. 우리가 해결해야 하는 작업(특히 모든 종류의 문자열을 부분 문자열로 분할)을 미리 상상해 보시기 바랍니다. 그러면 결정 자체가 더 명확해 보일 것입니다. 그러나 기다릴 수 없다면 코드에서 함수를 "복사"하고 "너트처럼 잘라낼" 수 있습니다. 궁금하신 분들을 위해 그곳에 댓글을 남겼습니다.

방법 즉각적인()암호를 입력하는 데에도 사용할 수 있습니다.

이것이 수업의 끝이 아닙니다!

이 장의 읽기를 마치기 위해 "스파이 플레이"를 해봅시다. 먼저 버튼을 누르고 무언가를 입력해 보십시오.

아, 바로 그거야! 하지만 보세요, 또 다른 버튼이 있습니다! 어서 해봐요...

비밀번호:

첫 번째 버튼을 다시 누르고 올바른 비밀번호를 입력하십시오.

이 모든 재미는 아마도 효과가 있을 수 있지만 실제로 암호는 다음을 눌러 찾을 수 있습니다. 오른쪽 버튼그리고 그것을 코드에서 봅니다. 일부는 코드를 별도의 .js 파일에 넣는 것으로 충분하다고 순진하게 생각할 수 있습니다. 그러나 페이지 코드에는 주소가 포함된 이 파일에 대한 링크가 있습니다. 그리고 전화를 걸면 주소 표시 줄, 그러면 JavaScript 코드가 있는 파일이 열립니다. :)

코드에서 암호를 암호화할 수 있습니까? 당신은 할 수 있지만 이것은 다시 몇 가지 수학적 방법의 사용과 함께 문자열 조작이 필요합니다. 이 모든 것에 도달하면 "실제" 암호 스크립트도 공부할 것입니다. 그러나 사용자 상호 작용 기술은 여전히 ​​​​동일합니다. 방법 즉각적인(). (암호화 된 비밀번호를 "크래킹"할 수 있습니까? 아아, 해커의 완벽에는 제한이 없습니다 ...)

이름이나 부재를 "잡은" 것과 같은 방식으로 함수를 사용하여 암호를 포착합니다.

잘못된 비밀번호를 입력하거나 아무 것도 입력하지 않으면

document.getElementById("아니요").style.display = "차단"

두 번째 버튼으로 블록을 엽니다.

그리고 올바른 비밀번호를 입력하면 액션이 문자열로 전송됩니다.

document.getElementById("yes").style.display = "차단",

다음 블록을 여는

그만해, 그 크라야코즈브리는 뭐야? 이것은 간단한 암호입니다. 곧 설명하겠습니다.

그 동안 나는 다음 블록의 코드를 제공합니다(명확성을 위해 마지막 블록에 포함된 프레임이 있는 표는 생략합니다).


"아니오" 스타일="디스플레이: 없음;" >

아, 바로 그거야! 하지만 보세요, 또 다른 버튼이 있습니다! 어서 해봐요...




"mypassword" 스타일="디스플레이: 없음;" >

비밀번호:


첫 번째 버튼을 다시 누르고 올바른 비밀번호를 입력하십시오.



"예" 스타일="디스플레이: 없음;" >

이제 더 읽어보겠습니다.


. . . . .
. . . . .

그래서, 암호화에 대해. 그녀는 매우 비참합니다. 어느, 기능을 알고 탈출하다()그리고 이스케이프(), 즉시 해킹합니다.

기능 escape("여기에 문자열을 입력하세요")문자를 16진수 값으로 변환합니다.

기능 unescape("여기에 quackaubers 삽입")반대로 합니다.

이 방법으로 암호를 암호화하려면 집에서 암호를 통과해야 합니다. 탈출하다(), 결과를 복사하여 붙여넣기 이스케이프(). 그러나 이것은 심각한 것이 아닙니다.

글쎄, 완전한 세트- 두 번째 버튼의 기능:

표준 대화 상자를 표시하기 위해 JavaScript에는 오늘 배운 세 가지 방법만 있습니다. 이러한 방법은 자주 발생하지 않지만 자신 있게 사용할 수 있는 기능은 매우 유용합니다. 그것들은 단순하지만 동시에 말하자면 "순수한" 프로그래밍입니다. 그들은 프로그래밍 언어를 마스터하는 데 손을 채우기에 매우 좋습니다. 그리고 나는 실용적인 관점에서 목표가 없더라도 가능한 모든 방법으로 그것들을 실험하는 것이 좋습니다. 좋은 프로그래밍- 이것은 실제로 모든 창의성과 마찬가지로 흥미진진한 게임입니다.