안녕하세요. 궁금증연구소입니다.
오늘 포스팅 주제는 "vendor.js:1 Uncaught (in promise) Error: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received 에러"입니다.
간단한 버튼 클릭 이벤트 처리를 하려고 하는데 위와 같은 메시지가 떴다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="code.css">
<title>이벤트와버튼</title>
<script src="code.js"></script>
</head>
<body>
<input id="myBtn" type="button" value="click!" >
</body>
</html>
원인은 script 태그의 위치 때문이다. 바디 태그 최하단으로 옮긴 후 정상 작동한다.
참고자료는 스택 오버 플로우의 다음 글이다.
https://stackoverflow.com/questions/9778888/uncaught-typeerror-cannot-set-property-onclick-of-null
아마도 이분의 정보에 따르면, 자바스크립트의 js 파일이 요구하는 명령을 수행하려는 요소가 로드되기 전에 자바스크립트를 위치시켜서 인 것 같다.
[자바스크립트] 화살표함수 () {} 주의할점 (0) | 2022.10.12 |
---|---|
vscode 에서 크롬 콘솔창(edge콘솔창) 같이 보는 방법은? (0) | 2022.10.10 |
[자바스크립트] Boolean() 불 자료형 변환 가능한 자료 (1) | 2022.09.20 |