>> 스피커 1 : 자, 마지막 예에서 우리는 몇 가지를 산재 리콜
내 HTML 내부에 자바 스크립트 코드, 구체적으로는, 값의 내부
제출에라는 속성 해당 양식 태그.
이제 작은 페이지에 대한이 그렇게 큰 문제가 아니다.
그러나, 웹 페이지는 더 길고수록 복잡한, 단순히 퍼팅 당신의
내부 여기 저기에 자바 스크립트 코드 속성 값이없고 건
최고의 디자인.
베스트 우리는을 인수 분해하고있는 경우 최소한의 안쪽에 넣어
중앙 스크립트 태그.
>> 이 작업을 수행하는 방법을?
음의 내 폼 태그로 복귀하자 먼저이 속성과 삭제
모두 평가한다.
그럼 여기까지, 대신은을 정의 인사라는 함수의가 걸어 보자
코드 줄이 궁극적으로 우리 여전히 실행하고 교체 할 것
다음과 같이 인사 기능.
Document.get 요소 ID 맺다 데모를 인용 -
데모, 리콜, 독특한입니다 폼 자체에 대한 식별자 -
점의 이름입니다 기억 제출 이벤트 처리기의 한
우리가 관심.
그리고의 핸들러를 제출하는에 할당 할 수 실제의 값
자체 기능을 수행합니다.
>> 지금은 사실이 아니에요 통지 여기에 함수를 호출.
내가 대신 익명을 정의하고있어, 그렇지 않으면 람다 함수로 알려진,
이러한 중괄호 사이에 지정하여 코드의 무리가해야
실제로 실행 될 수있다.
특히, 내가 좋아하는 것 코드 실행을하면 내가 가진 그 라인
전에 다음의 그에 추가 할 수 이 양식이되지 않도록 false를 반환
궁극적으로 원격 웹을 종료 제출 전통적인 방법으로 서버.
>> 의 지금,이 파일을 저장하고, 그것을 열어 보자 브라우저에서, 무슨 일이 일어 나는지 참조하십시오.
http://localhost/dom-1.html.
의 지금은 내 이름을 입력하자 다윗은, 제출.
그리고 아무 일도 것으로 나타납니다 내 페이지의 URL는 것 제외
형태가 된 것처럼 변경 실제로 같은 파일을 제출했다.
>> 이제 그 이유가 될 수 있을까요?
그럼 난 좀 더 많은 정보가 필요합니다.
그래서 앞서 가자와 크롬의를 열어 개발자 도구 있도록 사실 수 있습니다
볼 콘솔 창을보고 내가 뭔가 잘못했을 경우.
나는 통해 그 액세스 할 수 있습니다 몇 가지 방법.
중 하나는, 여기에이 메뉴를 통해입니다 다음 도구에서 다음 아래로
개발자 도구.
>> 그리고, 여기에 콘솔 탭에서 예고 캐치되지 않는 유형의 오류가 아닌 수는있다
널 (null)의 제출에 대한 속성을 설정합니다.
이제 그 이유가 될 수 있을까요?
그럼 다시 내 소스 코드는 여기에 통지 그에 나는 생각 제출
요소의 속성 고유 식별자는 데모입니다.
요소는, 다시, 단지이다 트리에서 노드.
>> 그래서 내 브라우저는하지 않는 것으로 나타 생각하는 요소
또는 노드가 아직 존재합니다.
그리고 실제로, 그것은하지 않습니다.
웹 페이지를 구문 분석 할 것을 기억 또는 읽기 웹 브라우저로, 위에서 아래로,
왼쪽에서 오른쪽으로.
그리고 때 자바 스크립트 코드는 발생 전형적 그것을 실행있어
바로.
>> 그러나이 경우, 우리는 심지어 못 했어 아직 DOM의 부분에,
독특한로 해당 양식 HTML, 식별자 데모를 선언하고있다.
그래서 우리는 실행하려는 내 해당 노드 전에 자바 스크립트 코드도
물론입니다 트리에 존재 문제가, 다음, 반드시 때문에
요소 자체가 null이됩니다 그 시점에서.
>> 어떻게 문제를 해결하려면?
그럼 우리는 몇 가지 해결책이있다.
그러나의 재배치하여 간단한 해보자 머리에서 내 스크립트 태그
으로, 특히 내 몸에 태그를하지만, 내 페이지의 몸의 아래쪽 때문에
그것은 노드 이하의 것을 질문.
특히,의 강조하자 잘라 열린 태그와 스크립트 닫기 태그
코드의 전체 블록을 재배치 여기에 파일의 맨 아래에.
>> 지금이 반드시 깨끗한 아니다 디자인,하지만 적어도 그것은 것
작업의 올바른 순서를 적용합니다.
의 파일을 저장하자 브라우저에서 다시로드합니다.
의 페이지를 다시로드하자, 다시 입력 내 이름, 거기에, 안녕하세요 데이비드가 돌아왔다.