gpt4 book ai didi

html - 用户代理应该如何处理无法识别的 HTML 元素?

转载 作者:太空狗 更新时间:2023-10-29 14:10:12 25 4
gpt4 key购买 nike

我试图在 W3C HTML 规范中找到这个问题的答案,但到目前为止还没有成功。

例如,如果我有以下 HTML 代码:

<body>
<p>
<foo>bar</foo>
</p>
</body>

W3C 是否规定了用户代理应该如何处理这个问题?例如,“foo”元素应该被完全忽略吗?是否应该忽略“foo”元素但解析内容“bar”?

此外,这样做是否“合法”?

编辑:你们所有人的一些优秀答案!我完全同意嵌入通用 XML 是一种不好的做法,除非您可以完全控制用户将使用的浏览器。我最好奇的是,如果要生成这样的标记,实际会发生什么或应该发生什么:-)

最佳答案

HTML 规范并没有说明太多,other than :

The HTMLUnknownElement interface must be used for HTML elements that are not defined by this specification (or other applicable specifications).

这可以在符合标准的浏览器中使用控制台中的以下 JavaScript 代码进行验证:

Object.prototype.toString.call(document.createElement("foo"));
//-> "[object HTMLUnknownElement]"

然而,一些浏览器要么不遵循这里的规范。例如,Chrome 13 给出 [object HTMLElement] , IE 8 给出 [object HTMLGenericElement] (IE 9 是正确的)。

据我所知,所有浏览器都会解析 <foo>作为一个元素,但不保证默认样式和行为是相同的。在哪里HTMLUnknownElement实现并遵循规范,它应该直接继承自 HTMLElement因此,在其他元素上有许多默认属性。

请注意,当您的标记中包含非标准元素时,您的 HTML 将无法验证。还值得一提的是,搜索引擎爬虫、屏幕阅读器和其他软件将无法从这些元素中提取语义。

进一步阅读:

关于html - 用户代理应该如何处理无法识别的 HTML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7470630/

25 4 0
文章推荐: java - 在 Android Studio 中添加外部库时出现问题
文章推荐: git - 在 Windows 上设置 autocrlf = input 有什么害处?
文章推荐: git - 比特桶服务器 : Send email when pushing a commit that modifies files inside a specific folder
文章推荐: html - 垂直对齐包含在 中的
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com