为什么浏览器无法解析以下代码?

时间:2011-11-08 18:28:57

标签: javascript

<script type='text/javascript'>

    function cool()
    {
        var innerHtml = "<script></script>";//simply for demostration
        $("body").append(innerHtml);
    }
 </script>

以上会混淆浏览器,甚至在调用cool函数之前也无法正确呈现。为什么呢?

1 个答案:

答案 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字符串中将序列</表示为<\/