我正在使用XHTML Strict标记创建网站。在html中我需要放一个js脚本:
<script type="text/javascript">
$(document).ready(function () { $('#nav li#nav-strona-glowna').append('<a href="/platinium/" class="hover active"><span>Strona glowna</span></a>');
</script>
不幸的是,xhtml不再有效,因为此脚本中有一个“”标记。如何在不删除xhtml的情况下验证它?
答案 0 :(得分:6)
You want a CDATA tag.从该MDC页面窃取的示例:
<script type="text/javascript">
//<![CDATA[
var i = 0;
while (++i < 10)
{
// ...
}
//]]>
</script>
一般来说,最好通过将JS(和CSS)放在外部文件中来避免这个问题。
答案 1 :(得分:3)
尝试:
<script type="text/javascript">
<![CDATA[
$(document).ready(function () { $('#nav li#nav-strona-glowna').append('<a href="/platinium/" class="hover active"><span>Strona glowna</span></a>');
]]>
</script>
答案 2 :(得分:1)
<script>
//<![CDATA[
// js goes here - bypasses browser HTML parser
//]]>
</script>
我建议你找到在页面中注入HTML的方法,而不是直接在JavaScript中编写HTML标记。如果您保持内容,演示和行为分离,您与网页设计师的关系将更加强大,更加合作,并且富有成效。
但是对于那些无法实现的情况,CDATA包装器会阻止浏览器将您的JavaScript解析为HTML。
请记住,他们称之为HTML Strict是有原因的。
答案 3 :(得分:1)
<强>更新强>
您的代码中存在一个问题,即它缺少一个括号和括号。可能是拼写错误?
关于XHTML验证,最好的选择是将JavaScript放在单独的文件中。如果做不到这一点,请在脚本周围添加CDATA部分:
<script type="text/javascript">
//<![CDATA[
$(document).ready(function () { $('#nav li#nav-strona-glowna').append('<a href="/platinium/" class="hover active"><span>Strona glowna</span></a>'); });
//]]>
</script>
请注意,JavaScript注释适用于IE等浏览器,它们不会将XHTML解析为XML。见https://developer.mozilla.org/en/properly_using_css_and_javascript_in_xhtml_documents
答案 4 :(得分:1)
<script type="text/javascript"><![CDATA[
// your code
]]></script>
应该解决您的问题
答案 5 :(得分:1)
验证器给您带来了什么错误?您发布的代码看起来非常有效。
顺便说一下。如果您出于某些特定原因不需要XHTML,
(http://xhtml.com/en/xhtml/serving-xhtml-as-xml/)
你可能只使用HTML4或HTML5,你也可以用它来制作有效的代码。