有效的html - '&lt;'或'&gt;'在<script>标签</script>之间

时间:2010-11-18 20:21:35

标签: javascript html validation xhtml

当我使用html验证器时:

http://validator.w3.org/

它给了我一个错误。在我的页面标题中,我有类似的东西:

<script type="text/javascript"> 
$(document).ready(function(){
    $('#countdown').countdown({
        until: '+2d+3h+1m+6s',
        layout: '{d<}{dn} {dl}, {d>}{hnn}:{mnn}:{snn}'
    });
});
</script>

layout中给定字符串的部分包含<。验证器发出错误。

我只是打折这个,因为它是脚本标签的一部分吗?它与验证器有关吗?

我知道有些人可能会建议把它放在外部文件中,但它是动态的,我不想弄明白。

2 个答案:

答案 0 :(得分:5)

用CDATA包装它

<script type="text/javascript"> 
//<![CDATA[
$(document).ready(function(){
    $('#countdown').countdown({
        until: '+2d+3h+1m+6s',
        layout: '{d<}{dn} {dl}, {d>}{hnn}:{mnn}:{snn}'
    });
});
//]]>
</script>

参考:https://developer.mozilla.org/en/properly_using_css_and_javascript_in_xhtml_documents

答案 1 :(得分:0)

正如HTML 4 Recommendation关于在元素内容中指定非HTML数据的说明中所述,结束标记在SCRIPT元素中被识别,但是其他类型的标记 - 例如开始标记和注释 - 则不是。对于定义为具有CDATA内容的元素,这是SGML的一个不直观的怪癖。

尝试

    <script type="text/javascript"> 
$(document).ready(function(){
    $('#countdown').countdown({
        until: '+2d+3h+1m+6s',
        layout: '{d<}{dn} {dl}, {d\>}{hnn}:{mnn}:{snn}'
    });
});
</script>