w3c验证器在jQuery&之后忽略了更改javascript更改

时间:2016-02-16 13:25:50

标签: javascript jquery html w3c-validation

我有一个网站需要传递W3C Validator上的每个错误。我遇到的一些错误与图像的替代文字有关。我写了这个并将其添加到<head>

<script type="text/javascript">
        jQuery(document).ready(function($) {

            $('img').each(function(){
                var $img = $(this);
                var filename = $img.attr('src');
                $img.attr('alt', filename.substr(filename.lastIndexOf("/") + 1));
            });

        });
</script>

但是,我看到W3验证器忽略了我对javascript所做的任何更改,并在javascript运行之前使用了HTML页面。类似的是当我用JS加载地图时,W3验证器将其视为空元素。

有没有办法让验证器在检查页面之前等待?

2 个答案:

答案 0 :(得分:4)

验证HTML的目的是确保浏览器和其他工具(例如网络爬虫)能够正确读取HTML并正确符合HTML规范。当您的代码运行时,已经发生,并且已经处理了浏览器处理的任何无效内容,并且浏览器无效的任何内容都无法句柄已阻止正确解释文档。在这一点上,试图追溯使HTML有效是为时已晚;它已被阅读。

换句话说:您的img 标记仍然无效,您所做的就是修复生成的img 元素浏览器创建。

使这些img 标记有效的唯一方法是在HTML文件本身中将alt添加到它们中,使用(somethinghere points out)有用内容而不仅仅是源文件名。

答案 1 :(得分:0)

您正在编辑dom,Validator不会检查DOM,只检查HTML。您需要自己为每张图片添加一个alt属性。