由于Javascript中的html标记,XHTML Strict无效

时间:2011-01-26 15:06:26

标签: javascript xhtml tags validation strict

我正在使用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的情况下验证它?

6 个答案:

答案 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)

CDATA Wrapper

 <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,你也可以用它来制作有效的代码。