在页面中如果需要出现一些特殊字符,如&, <, >等,我们应该使用它们的实体,如&的实体为&,否则将通不过W3C校验,但是经常我们的脚本代码中需要使用这些字符,请看下面的两段Javascript脚本:
function example1()
{
window.location.href = "http://example.com/index.html?id=1&name=t";
}
function example2(myvar)
{
if (myvar < 5)
{
alert(myvar);
}
}
这两个函数中的&和<字符将致使该页面被拒于W3C标准门外,因为W3C组织强烈建议完全过滤像这类特殊字符(目前主要是&和<,像> " '等字符可以通过),即使像&这样用于URL,<用于脚本中的判断都不能通过标准校验。
解决方案:
1、将脚本代码放入外部文件中,不过很多情况下,页面中的脚本代码并不是通用的,而是该页面专属的,因此都放入外部文件中显得牵强。
2、快速解决方案--利用XML文档中的CDATA 部件(以<![CDATA[开始,以]]>结束):
<script type="text/javascript">
//<![CDATA[
function example1()
{
window.location.href = "http://example.com/index.html?id=1&name=t";
}
function example2(myvar)
{
if (myvar < 5)
{
alert(myvar);
}
}
//]]>
</script>
注意:这里的开始和结尾标记前都加上了//注释符,这是因为目前页面DDT主要还是xhtml1-transitional.dtd,如果不加上//,则会发生解析错误(在XML文件中是可以不要//的)。
function example1()
{
window.location.href = "http://example.com/index.html?id=1&name=t";
}
function example2(myvar)
{
if (myvar < 5)
{
alert(myvar);
}
}
这两个函数中的&和<字符将致使该页面被拒于W3C标准门外,因为W3C组织强烈建议完全过滤像这类特殊字符(目前主要是&和<,像> " '等字符可以通过),即使像&这样用于URL,<用于脚本中的判断都不能通过标准校验。
解决方案:
1、将脚本代码放入外部文件中,不过很多情况下,页面中的脚本代码并不是通用的,而是该页面专属的,因此都放入外部文件中显得牵强。
2、快速解决方案--利用XML文档中的CDATA 部件(以<![CDATA[开始,以]]>结束):
<script type="text/javascript">
//<![CDATA[
function example1()
{
window.location.href = "http://example.com/index.html?id=1&name=t";
}
function example2(myvar)
{
if (myvar < 5)
{
alert(myvar);
}
}
//]]>
</script>
注意:这里的开始和结尾标记前都加上了//注释符,这是因为目前页面DDT主要还是xhtml1-transitional.dtd,如果不加上//,则会发生解析错误(在XML文件中是可以不要//的)。