当然,我现在用的模板是已经通过验证的了,而且在各个浏览器里的兼容性很好,不过模板拿来之后,难免要改一改,使之符合自己的要求,本来是未作修改之前是通过验证的,修改之后,出现了大量的错误。

最高的时候是有89个错误在首页,当然虽说数字很高,但是错误的地方主要就是几个而已,包括在图片、flash、和雅虎统计的代码中,现在就针对这几个地方作出修改,部分设置是针对WordPress的。

一、让图片代码中的align,通过W3C验证

标准由于代码与数据分离的原则,已经去掉了align属性,由原来的<img src=”” align=”left” />只能改由CSS控制。这个地方,WordPress提供了一个很好的编辑器,可以直接在后台设置一下,再插入图片,对原来的图片修改之后,就可以通过验证。

具体在后台->设置->撰写->格式化,把□WordPress 自动校正错误的 XHTML 代码打上勾就可以了,不过如此更改之后,插入flash的时候就插不进去了。

二、让Flash通过W3C验证

flash的标签在W3C里都是找不到的,所以通不过W3C的验证是很正常的。解决方法就是通过JavaScript输出flash。像DreamWeaver里就有一段解决这个问题的代码,在DreamWeaver里操作的时候,插入Flash时会自动提醒附加JS文件,这里就不再表述了。

其实大部分的门户网站,用的是 swfobject 去控制的,这段代码可以到http://code.google.com/p/swfobject/里面下载到最新版,目前版本是2.1,大约在23K。根据原来的 object 或者 embed 形式的代码转换成 JavaScript 的形式。注意 swfobject 需要一个 Div容器来输出数据。

以下示例是根据滔滔的Flash插件,转换来的,看id为publicize的容器。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript">
var flashvars = {};
flashvars.pw = "270";
flashvars.ph = "400";
flashvars.qq="QQ号码"
flashvars.num="20"
flashvars.style="1"
var params = {};
params.menu = "false";
params.quality = "autohigh";
params.wmode = "transparent";
var attributes = {};
attributes.id = "flashplayer";
swfobject.embedSWF("http://www.taotao.com/res/ttlist.swf", "publicize", flashvars.pw, flashvars.ph, "9.0.124.0", "/99/expressInstall.swf", flashvars, params, attributes);
</script>

主要是这个部分,没有这个容器是不会输出内容的,当然这个名字你可以改成另一个。

16
17
18
19
20
<div id="publicize">
  <a href="http://www.adobe.com/go/getflashplayer">
  <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
  </a>
</div>

三、雅虎统计代码通过W3C验证

这是一个很多人不注意的地方,雅虎统计也没有提供一段标准的代码,其实像Google一样,不要noscript就可以了啊,估计现在没有javascript支持的应该很少吧。

下面是雅虎统计的代码,主要有两个部分,一个是图片没有alt,另一个是noscript里需要 p div等容器。
 

1
2
3
4
5
6
7
8
<script type="text/javascript" src="http://js.tongji.cn.yahoo.com/你的统计代号/ystat.js"></script>
<noscript>
<p>
<a href="http://tongji.cn.yahoo.com">
<img src="http://img.tongji.cn.yahoo.com/你的统计代号/ystat.gif" alt="雅虎统计"/>
</a>
</p>
</noscript>

附通过验证的载图

通过了W3C验证的截图

当然,不能单纯为了通过验证而验证,有一个地方在我看来是不合理的,就是在新窗口中打开,原来的target=”_blank”是很方便的,而现在呢,就会提示出错,解决办法也是用javascript 脚本实现。可以到网上以 target w3c 为关键词搜索,就能找到解决方案。 😀