Javascript 문자열 처리
전산/Javascript :
2009/11/30 10:42
다음의 코드를 살펴보자.
<html>
<head>
<script type="text/javascript">
function aaaa(msg){
alert(msg);
}
</script>
<head>
<body>
<script type="text/javascript">
var a = '<p id="p1" onclick="aaaa("Welcome to my world!!");">This is test.</p>';
var b = '<p id="myP" onclick="alert(this.innerText)">Welcome to my world!!</p>';
document.write(a);
document.write(b);
</script>
</body>
</html>
위의 코드를 실행하면 다음과 같이 나타난다.
This is test.
Welcome to my world!!
그렇다면, 각 문장을 클릭한다면?
첫째 문장을 클릭하면 어떻게 되는가?
그렇다면 둘째 문장을 클릭하면 어떻게 될까?
둘째 문장은 구현한 대로 alert()에 의해 Welcome to my world!! 팝업 메시지가 뜰 것이다.
하지만 첫번째 문장은 아무런 꿈쩍도 안한다.
Why??
바로 특수문자인 ' 또는 " 문자열 중복으로 생긴 오류이다.
Javascript 에서 특수 문자를 사용하기 위해서는 \(back slash) escape 기호로 특수문자인 것을 알려주면 해당 특수문자 코드는 특수문자체로 사용할 수 있다.
onclick="aaaa("Welcome to my world");"
이와 같이 사용하면 이벤트 처리시 어떠한 형식으로도 정상적으로 실행되지 않는다.
다음과 같이 사용하자.
onclick="aaaa('Welcome to my world');"
또는
onclick='aaaa("Welcome to my world");'
또는
onclick=\"aaaa(\'Welcome to my world\');\"
여기서는 다음과 같이 수정해 보자.
var a = '<p id="p1" onclick=\"aaaa(\'Welcome to my world!!\');\">This is test.</p>';
<p> 태그를 감싸고 있는 ' 기호와 내부의 " 그리고 ' 기호가 중복됨으로 \ 기호를 추가한 것이다.



