页面因脚本代码中含有特殊字符未能通过W3C校验的解决方法

    在页面中如果需要出现一些特殊字符,如&, <, >等,我们应该使用它们的实体,如&的实体为&amp;,否则将通不过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文件中是可以不要//的)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值