W3C XHTML 1.0 验证器 - 是否添加了对属性“Integrity”和“Crossorigin”的支持?

W3C XHTML 1.0 Validator - was support for attributes "Integrity" and "Crossorigin" ever added?

提问人:Greyhound2008 提问时间:8/17/2019 最后编辑:user4157124Greyhound2008 更新时间:2/4/2021 访问量:293

问:

尝试使用 W3C 验证器验证我的主页时,出现以下错误。

第 13 行,第 92 列:没有属性“完整性”....js” 类型=“文本/javascript” integrity=“sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo...

第 13 行,第 158 列:没有属性“crossorigin” ...FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=” crossorigin=“匿名”>

这个问题是在最近的程序更新后才出现的。开发人员似乎只是包含了这些属性。有一个线程(现在已有 5 年历史)与此和 W3C 验证器有关。是否添加了对 Integrity 和 Crossorigin 的检查和支持?

if($isConnected) {
    echo "<script src=\"https://code.jquery.com/jquery-3.3.1.min.js\" type=\"text/javascript\" integrity=\"sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=\" crossorigin=\"anonymous\"></script>\n";
    echo "<script src=\"https://code.jquery.com/ui/1.12.1/jquery-ui.min.js\" type=\"text/javascript\" integrity=\"sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=\" crossorigin=\"anonymous\"></script>\n";
}
else {
    echo "<script type=\"text/javascript\">// <![CDATA[\nwindow.jQuery || document.write(\"<script src='{$cms['tngpath']}js/jquery-3.3.1.min.js?v=910'>\\x3C/script>\")\n//]]></script>\n";
    echo "<script type=\"text/javascript\">// <![CDATA[\nwindow.jQuery.ui || document.write(\"<script src='{$cms['tngpath']}js/jquery-ui-1.12.1.min.js?v=910'>\\x3C/script>\")\n//]]></script>\n";
}

显然,问题出在这两个属性上,就好像我注释掉了上面代码的第一部分,强制使用“else”分支,然后我得到了一个干净的验证。但是,在执行此操作时,程序假定它正在“离线”运行,并且不会下载基于 Web 的异地内容(例如地图)。

XHTML W3C

评论


答:

5赞 Quentin 8/17/2019 #1

这些属性是在 HTML 5 中引入的。验证器在支持它们的语言版本中支持它们。XHTML 1.0 太旧了。

评论

0赞 Greyhound2008 8/17/2019
是否有更新的在线检查器可供我验证?
5赞 Quentin 8/17/2019
@Greyhound2008 — 你似乎不明白这个问题。您使用的验证器是正确的(这是有关此主题的最新信息,因为它可能是最新的),您正在使用的 HTML 版本中不允许使用您正在使用的属性。如果要使用属性,请更改正在使用的 HTML 版本,并且不要更改验证器。
0赞 Greyhound2008 8/18/2019
谢谢。据我所知,XHTML 1.0 似乎是基于 HTML4.0 的