请看下面,innerHTML后点击a弹出alert(3)
<div id="a">1</div>
<script>
document.getElementById("a").innerHTML = "123<script>document.getElementById('a').onclick=function(){alert(3)}<\/script>";
</script>
<div id="a">1</div>
<script>
document.getElementById("a").innerHTML = "123<script>document.getElementById('a').onclick=function(){alert(3)}<\/script>";
</script>
<div id="a">1</div>
<script>
document.getElementById("a").innerHTML = "123<script>document.getElementById('a').onclick=function(){alert(3)}</script>";
</script>
<script>
document.getElementById("a").innerHTML = "123";
document.getElementById('a').onclick=function(){alert(3)};
</script>
脚本在innerHTML中被赋值给DIV,不会再被JS解释,运行不了的
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD> <BODY>
<div id="a">1</div>
<script>
document.getElementById("a").innerHTML = "123";
document.getElementById('a').onclick=function(){alert(3)};
</script>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<script>
document.getElementById("a").innerHTML = "123";
document.getElementById('a').onclick=function(){alert(3)};
</script>
<BODY>
<div id="a">1</div> </BODY>
</HTML>
如果这样放就错了,因为当读到document.getElementById("a").innerHTML = "123";时,它到不到div所以报错!~
其实楼主问的不是很明白,你是为innerHTML赋值脚本内容吗?还是绑定一个onclick时间啊??如果你要付给脚本内容的同时还要让脚本执行,那要使用eval()函数,检测文本是不是code,若是则执行。
eval("document.getElementById('a').onclick=function(){alert(3)}");
<script>
document.getElementById("a").innerHTML = "123<script defer=true>document.getElementById('a').onclick=function(){alert(3)}<\/script>";
</script>