<script type='text/javascript'>
function cool()
{
var innerHtml = "<script></script>";//simply for demostration
$("body").append(innerHtml);
}
</script>
以上会混淆浏览器,甚至在调用cool函数之前也无法正确呈现。为什么呢?
答案 0 :(得分:8)
</script>
will end a script element,因此您的脚本会终止于字符串文字的中间。
浏览器不会“混淆”,HTML完全错误(并且无效......除了在XHTML中......但只有在使用application / xhtml + xml时才会计算...然后你得到一组不同的问题),这导致JavaScript错了。
当您使用内联JS时(根据example in section 18.2.4 of the HTML 4.01 Recommendation),在JS字符串中将序列</
表示为<\/
。