<script type="text/javascript">
function test() {
alert('<span>blah<span>');
}
</script>
<a href="#" onclick="test();">First</a><br />
<a href="#" onclick="alert('<span>blah<span>');">Second</a><br />
Third: <span>blah<span>
为什么第一个结果不同?是<script>
标签以某种方式从实体转换中排除?
最佳答案
在 HTML 中,script 和 style 元素是 defined in the DTD as containing CDATA .这意味着实体和标签将被忽略,直到解析器遇到看起来像结束标签的东西。
XHTML is different这些元素中的实体和标签功能正常——但仅当被解析为 XHTML 时。您可以使用 <![CDATA[ … ]]>
将内容明确标记为 CDATA .
浏览器会使用 HTML 规则将 XHTML 视为 text/html,这会导致在您尝试编写在两组规则下都正确的代码时出现大量麻烦。
避免问题的最简单方法是将脚本保存在外部文件中并使用 src
属性以包含它们。
关于javascript - 脚本标签内的 HTML 实体未转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4227895/