레이블이 dispatchEvent인 게시물을 표시합니다. 모든 게시물 표시
레이블이 dispatchEvent인 게시물을 표시합니다. 모든 게시물 표시

2019년 6월 12일 수요일

JavaScript를 이용해서 클릭 이벤트 발생시키기

통상적으로 JavaScript를 통해서 이벤트 발생을 catch해서 이벤트가 발생했을 때 무엇을 어떻게 처리하라는 식의 작업은 자주하게 되는 작업이다.
예를 들어서 클릭 이벤트가 발생했을 때 무엇을 하라든지, 혹은 input 태그의 값이 변경되었을 때 무엇을 하라든지...
그런데 반대의 경우를 만나게 되는 것도 종종 발생하기도 한다. 즉 특정 이벤트를 소스 코드에서 발생 시키는 경우를 말한다. 이벤트는 보통 사용자(사람)에 의해서 발생하게 되는데 반대로 소스 코드에서 특정 이벤트를 발생시키는 경우에 대해서 포스팅하고자 한다.

아래의 소스코드는 a 태그에 필자의 블로그로 이동하는 링크를 걸었고 이것을 사용자가 클릭하면 당연히 이동하겠지만 여기서는 프로그램에서 a 태그에 대한 클릭 이벤트를 발생시켜서 블로그로 이동하는 기능을 구현한 것이다.
따라서 본 페이지로 집입하자 마자 블로그로 막바로 이동하는 효과를 나타내게 될 것이다.

<html>
<head><title>Click 이벤트 발생시키기</title></head>
<body>
<a id="myBlog" href="http://developer-joe.tistory.com">Developer Joe의 블로그로 이동하기</a><br/>

<script>
var blogLink = document.getElementById('myBlog');
//blogLink.fireEvent("onclick"); //IE에서 동작하는 방법

//IE 이외의 경우
var event = document.createEvent("MouseEvents");
event.initEvent("click", false, true);
blogLink.dispatchEvent(event);

</script>
</body>
</html>