[JS] javascript:void(0) 과 #

2020. 6. 8. 21:32프론트엔드/JAVASCRIPT

728x90

 


javascript:void(0)


' javascript: '을 사용할 경우 해당 구문이 스크립트로 평가되어 실행되어 도큐먼트의 내용으로 표시됩니다.

' javascript:void(0) '을 사용할 경우에는 스크립트의 평가 결과로 'undefined'가 반환되어 무시되므로 현재 페이지가 유지됩니다.

주의할 점은 CSP(Content Security Policy)의 설정에 따라서는 Inline Event Handler가 블럭될 수 있습니다.

(물론 void이므로 블럭된다해서 문제될 것은 없을 수 있지만 보안툴 등에 의해 경고가 출력될 수 있습니다.

 

 

 

 

#(hash)


' #(hash) '는 보통 페이지 내부링크를 목적으로 사용되는데 id를 지정하지 않은 경우에는 해당 페이지의 최상단으로 스크롤됩니다.

기본동작을 방지하기 위해서는 클릭 이벤트 핸들러에서 ' false '를 반환하거나  ' 이벤트의 preventDefault '를 호출해 주어야 합니다.

<script>
	function clickFunction(){
    	return false;
    }
</script>
<a href="#" onclick="clickFunction()">클릭</a>

주의할 점은 onclick속성을 이용해서 인라인 이벤트 핸들러를 사용하는 것은 마찬가지로 CSP(Content Security Policy)를 위반하는 문제가있으므로 가급적 지양하는 것이 바람직할 듯합니다.

 

 

728x90

'프론트엔드 > JAVASCRIPT' 카테고리의 다른 글

[JS] 헤더 고정 스크롤 구현  (0) 2020.11.07
[JS 객체(Object)  (0) 2020.06.18
[JS] 클래스(Class)  (0) 2020.06.04
[JS] 함수(Functions)  (0) 2020.06.03
[JS] 반복문(Loops)  (0) 2020.05.31