现在有很多网站已经不太注重 W3C 的验证了,不过这终究不是一件太好的事情,他们有的为了省事不验证,有的在开发过程中一些问题没注意,导致后来要想再修改来通过验证需要付出代价太大而放 弃,有的为了节省代码减少流量加快加载速度而放弃繁文缛节。但不管怎么说,至少通过严格遵守一个行业通用的标准来规范自己的代码,也是一件值得推崇的事 情。本站声明了 W3C Strict 型文档的规则,并且所有页面都经过零错误、零警告的验证。下面是一些可能较少被人注意的验证中容易导致错误的问题,如果想要通过验证,这些问题应该值得看 一看。
1. 正确地嵌入 Flash
很多人依然使用 embed 标签来嵌入 Flash,甚至包括在优酷提供的视频分享代码中,这个标签已经被废置,正确地嵌入 Flash,需要像下面一样使用 object 标签,并配合 param 标签为 object 设置参数。
<object type="application/x-shockwave-flash" width="480" height="400"> <param name="movie" value="flash 地址"></param> </object>
2. 文档内的 JavaScript
有的时候可能不可避免的要通过后台来输出一些 JavaScript 代码,这样的代码只能直接书写在 x(html) 文档中,这并没有问题,但如果这些 JavaScript 代码中包含了有 HTML 字符的代码,那么除了使用正确的 script 标签包裹代码之外,还需要添加 character data,即 CDATA 标记,这个标记下的所有实体字符都会被 HTML 当做字符数据看待。
//正确的写法 <script type="text/javascript"> //<![CDATA[ var div = '<div></div>'; //]]> </script> //错误的写法 <script type="text/javascript"> var div = '<div></div>'; </script>
3. 贴代码的问题
开发人员的博客,一般都会有一些实例代码,但是在这些代码中,往往包含了一些对于 HTML 来说有特殊含义的字符,比如 < 和 > 分别是一个 HTML 标签开始和结束的标志。这时需要使用该字符的实体名称或者实体编号。例如,对于小于符号 < 来说,他的实体名称为 <,实体编码为 <。如果需要了解更多关于 HTML 字符实体(HTML entities)的内容,请移步到W3school。
4. target = "_blank"
不用再在 a 标签上使用这个属性来让用户在新窗口打开页面,让用户自由地选择把,他们可以通过鼠标中间点击,或者按住 ctrl 键点击链接来轻松地达到同样的目的。如果实在需要强制用户在新窗口打开链接,那么给 a 标签加上 rel="external" 属性,然后使用下面的 JavaScript 代码进行处理:
var anchors = document.getElementsByTagName("a"); for ( var i = 0 ; i < anchors.length ; i++ ) { if ( anchor[i].getAttribute("rel") === "external"){ anchor[i].target = "_blank"; } }