首页 > 解决方案 > W3C XHTML 1.0 Validator - 是否添加了对属性“Integrity”和“Crossorigin”的支持?

问题描述

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

第 13 行,第 92 列:没有属性 "integrity" ....js" type="text/javascript" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo...</p>

第 13 行,第 158 列:没有属性“crossorigin”…FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous">

此问题仅在最近的程序更新后才被发现。似乎开发人员只是包含了这些属性。有一个与此和 W3C 验证器相关的线程(现在已有 5 年历史)。是否添加了对 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 的非站点内容,例如地图。

标签: xhtmlw3c

解决方案


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


推荐阅读