WEBVTT 00:00:00.461 --> 00:00:05.742 이제 '이벤트'를 가지고 할 수 있는 한가지를 더 보여드리겠습니다. 00:00:05.742 --> 00:00:09.936 제가 만듣 이 웹사이트가 다음 질문에 답을 줍니다. 00:00:09.936 --> 00:00:12.150 "오노우가 뭐라 말하는가?" 00:00:12.150 --> 00:00:16.599 더 정확하게는 당신이 그가 말하는 것을 듣는다면 그의 소리는 어떠할까? 에 대한 답을요. 00:00:16.599 --> 00:00:20.589 링크를 클릭하면 MP3 파일을 받을 수 있습니다. 00:00:20.589 --> 00:00:25.163 그것은 웹브라우저에서 작동되고 그 질문에 대한 해답을 줍니다. 00:00:25.163 --> 00:00:30.009 어쨌든, 사용자들이 이 웹사이트를 나가지 않기를 바랍니다. 00:00:30.009 --> 00:00:33.445 이 페이지에서 바로 들을 수 있어야 합니다. 00:00:33.445 --> 00:00:37.891 자바스크립으로 <오디오> 태그를 사용하여 만들 수 있습니다. 00:00:37.891 --> 00:00:40.957 사용자들이 링크를 클릭하자마자 00:00:40.957 --> 00:00:45.109 첫번째로, 변수에 링크를 걸어봅시다. 00:00:45.109 --> 00:00:48.078 (타이핑하고 있음) 00:00:55.770 --> 00:00:58.099 이제 되돌리기 함수를 정의해봅시다. 00:00:58.099 --> 00:01:03.735 참 재밌을 거 같아요. 00:01:03.735 --> 00:01:10.165 이 되돌리기 함수에서 우리는 오디오 태그를 다이나믹하게 만들 수 있습니다. 00:01:10.165 --> 00:01:12.033 (타이핑하는 중) 00:01:15.816 --> 00:01:19.825 그리고 이것은 새로운 웹브라우저에서 사용가능한 멋진 새로운 태그가 될 겁니다. 00:01:19.825 --> 00:01:26.104 그리고 나서 오디오 . SRC 는 동일하게... 우리는 이것을 'href' 를 여기 위애 00:01:26.104 --> 00:01:32.563 오디오 태그는 이지미 태그와 많이 흡사합니다. 00:01:32.563 --> 00:01:37.335 그리고 나서 `audioEl.autoplay = true`,라고 쓰고 00:01:37.335 --> 00:01:40.333 이것은 우리가 이걸 이 페이지에 덧붙이자 마자 작동되게 할 겁니다. 00:01:40.333 --> 00:01:42.953 마침내, 이 페이지에 붙였습니다. 00:01:42.953 --> 00:01:45.574 어디에 이 태그를 붙이느냐는 상관없습니다. 00:01:45.574 --> 00:01:48.064 시각화하지 않을 거니까요. 00:01:48.064 --> 00:01:52.295 이제 클릭하면 오디오를 생성하고, 소스를 셑한다음, 00:01:52.295 --> 00:01:55.387 자동 플레이가 되고, 이 페이지에 붙여질 겁니다. 00:01:55.387 --> 00:01:59.444 마지막으로, 링크가 클릭될 때 확실하게 00:01:59.444 --> 00:02:01.376 이벤트리스너가 호출되도록 합니다. 00:02:01.376 --> 00:02:03.723 (타이핑 하는 중) 00:02:08.283 --> 00:02:12.951 그리고 나서, 함수이름은 건너뜁시다. 00:02:12.951 --> 00:02:17.385 자, 시험해봅시다. 00:02:17.385 --> 00:02:19.729 허밍 00:02:19.729 --> 00:02:21.110 어떻게 되었나요? 00:02:21.110 --> 00:02:26.337 저한테는 이 소리가 낮고 깊은 오노우의 툴툴거리는 소리로 들립니다. 00:02:26.337 --> 00:02:29.789 링크가 여전히 새 윈도우에 오픈되었네요. 00:02:29.789 --> 00:02:33.476 이상적으로는 한번 소리가 플레이되면 웹브라우저는 더이상 00:02:33.476 --> 00:02:37.548 사용자가 링크되지 않게 하는 게 좋아요. 이미 들었으니까요. 이렇게 하려면 00:02:37.548 --> 00:02:42.920 웹브라우저에게 이 이펄트 행위를 취소하라는 명령을 하면 됩니다. 00:02:42.920 --> 00:02:47.148 자, 디펄트로 사용자가 링크를 클릭하면 00:02:47.148 --> 00:02:50.321 웹브라우저는 사용자가 그 링크로 가게 합니다 00:02:50.321 --> 00:02:54.226 만일 자바스크립에서 그 링크로 가는 길을 중단하려면 00:02:54.226 --> 00:02:58.004 웹브라우저의 그 작동을 원치 않죠. 00:02:58.004 --> 00:03:02.731 이벤트 프라퍼티에 `preventDefault()`.라는 메쏘드를 사용하여 00:03:02.731 --> 00:03:05.299 중단시키라고 할 수 있습니다. 00:03:05.299 --> 00:03:09.897 우리가 지나온 이벤트 압젝트에다 써야합니다. 00:03:09.897 --> 00:03:15.830 여기 안에다가 `e.preventDefault();`라고 씁니다. 00:03:15.830 --> 00:03:19.420 이것은 웹브라우저에게 이 디펄트행동(기본행위)를 하지말라고 명령합니다. 00:03:19.420 --> 00:03:21.399 이 이벤트과 연관하여. 00:03:21.399 --> 00:03:25.995 자 talk-through를 멈추고 다시 시험해봅시다. 00:03:25.995 --> 00:03:28.385 지금 막 소리 들으셨죠? 00:03:28.385 --> 00:03:30.949 이것은 훨씬 좋은 사용자 경험입니다. 00:03:30.949 --> 00:03:34.959 이것을 "progressive enhancement"--점진적 증강, 진보적 확장 이라고 합니다. 00:03:34.959 --> 00:03:39.514 웹페이지를 HTML로 디펄트 브라우저 행위로 시작하는 00:03:39.514 --> 00:03:44.650 그리고 자바스크립으로 좀 더 풍부한 경험을 하게 확장하는 거죠. 00:03:44.650 --> 00:03:48.361 당신은 리스너가 링크되도록 클릭하게 덧붙일 때 00:03:48.361 --> 00:03:50.445 종종 이 `preventDefault`를 사용하게 됩니다 00:03:50.445 --> 00:03:54.447 form processing 을 할 때도 이것을 사용할 수도 있습니다. 00:03:54.447 --> 00:03:57.485 서버에 서브밑하려면, 00:03:57.485 --> 00:03:59.264 브라우저가 디펄트 행동을 또 해야하기 떄문에 00:03:59.264 --> 00:04:02.640 사용자 경험을 명심하고 웹사이트에서 사용자 경험이 옵션이 아니라면 00:04:02.640 --> 00:04:06.730 브라우저가 디펄트 행동을 또 해야하기 떄문에 00:04:06.730 --> 00:04:08.953 더 좋게 만드는 방법을 찾아내야 합니다. 00:04:08.953 --> 00:04:11.366 여기서 모든 것을 가르쳐줄 수는 없지만 00:04:11.366 --> 00:04:15.499 인터넷에는 수천 수만가지 답이 있습니다.