提问人:Greyhound2008 提问时间:8/17/2019 最后编辑:user4157124Greyhound2008 更新时间:2/4/2021 访问量:293
W3C XHTML 1.0 验证器 - 是否添加了对属性“Integrity”和“Crossorigin”的支持?
W3C XHTML 1.0 Validator - was support for attributes "Integrity" and "Crossorigin" ever added?
问:
尝试使用 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 的异地内容(例如地图)。
答:
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 的
上一个:在 XML 中嵌入 XHTML
评论