有效的HTML是重要的过去页面加载?

时间:2011-09-14 13:41:06

标签: html w3c-validation

我读了一篇文章,建议通过javascript在pageload之后应用规则来解决一个严格无效的方法(target="_blank")。

这让我感到震惊,因为这是一个利用法律条文来挫败法律精神的大案例,但我不想在知道这是否真的是一个问题之前批评。有没有关于代码验证的内容,只有在任何脚本执行之前才能解决问题?

3 个答案:

答案 0 :(得分:2)

尽量使您的网页尽可能有效。您不会使其对W3有效,但对您的用户有效。浏览器需要更正无效的HTML才能显示。每个浏览器都可以这样做,因此无效标记可能(理论上)导致您的页面在每个浏览器中看起来不同。

如果您从JavaScript添加标记,它将同样无效,并且它会给您带来相同的风险。你唯一做的就是欺骗W3验证器,因为它不会执行Javascript。事实上,它测试的是另一个页面而不是用户会看到的页面。如果你这样做,你的验证就没用了。

那就是说,我相信target="_blank"适用于大多数浏览器,所以如果你真的需要它,并且不能改变文档类型,那么你只需要忍受你得到的那个错误来自验证者。

然后再次,标记本身看起来没问题(没有省略元素,一切都很好地转义和引用),所以它只是浏览器可能忽略的单个属性。最糟糕的情况是,浏览器会忽略目标。从理论上讲,浏览器可能无法呈现页面,但在这种情况下,这是不太可能的。

答案 1 :(得分:1)

我无法确定除了能够通过验证测试之外还有任何其他原因。如果您不关心这些错误,那么在没有javascript的情况下包含它们就是正确的(或不正确的)。

我个人认为,如果你需要做target="_blank",只需将它嵌入到页面加载的html中,不要依赖JS来完成它,这看起来很愚蠢。

答案 2 :(得分:1)

通过修复无效标记,我看到很多javascript错误消失了。任何必须解析页面(javascript,css等)的东西都将受益于有效的标记。我看过其他开发人员在几个小时内处理js问题,诅咒IE和浏览器的差异,只是为了解决这个问题并通过修复标记并删除他们的IE-only脚本废话来解决问题。

所以,是的,我认为有效的标记非常重要。

我认为最重要的标记是有效的层次结构 - 正确关闭div和over标签。目标属性可能不会让你失望,但我会说无论如何都要做对。当您开始向规则添加例外时,您将处于滑坡状态。