function test1(){
J("#testDiv").html('test1<'+'script>alert(1);<'+'/script>');
}
function test2(){
document.getElementById('testDiv').innerHTML='test2<'+'script>alert(1);<'+'/script>';
}
function test3(){
var script = document.createElement('script');
script.innerHTML='alert(1);';
document.getElementById('testDiv').appendChild(script);
}
<a onclick="test1();">test1</a>
<a onclick="test2();">test2</a>
<a onclick="test3();">test3</a>
<div id="testDiv">
</div>
jquery환경에서 테스트하면
1,3 번은 출력되고 2번은 안된다.
jquery는 내부적으로 append를 통해서 동작하기 때문에
script를 실행시 script가 실행된다.