运行JavaScript我试图运行在每个浏览器下面的HTML:歌剧,FF,IE,Chrome的不能在CDATA
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8">
</head>
<body>
<script>
<![CDATA[
alert('Hey!');
]]>
</script>
</body>
</html>
他们没有显示警报。 Chrome在控制台中记录错误:未捕获的SyntaxError:意外的令牌<。它似乎在抱怨CDATA声明中的拳头<。火狐还记录“语法错误”
W3Schools的指出,这是使用CDATA http://www.w3schools.com/xml/xml_cdata.asp的方式。 Other answers在这个网站上建议。我究竟做错了什么?我尝试使用命名空间和文档类型,但这并没有改变任何东西。
编辑:我添加XHTML名字空间和文档类型,那我当初删除,问题仍然存在。
XML!= HTML。下面是一个解释它的问题: – 2012-03-06 19:26:06
可能的重复[When is a CDATA section within a script tag?](http://stackoverflow.com/questions/66837/when-is-a-cdata-section-necessary-脚本内标签) – 2012-03-06 19:27:53
XHTML是XML。事实上,我服务器上的所有HTML都是由XSL模板生成的,因此根据定义它是有效的XML。 – 2012-03-06 19:28:54