【问题标题】:Why doesn't duplicate IDs throw an error?为什么重复的 ID 不会引发错误?
【发布时间】:2013-10-27 16:50:14
【问题描述】:

我进行了快速搜索,但找不到任何对这个问题有用的信息。如果 DOM 元素上有重复的 ID,浏览器是否有理由不会向控制台抛出警告或错误?似乎浏览器在解析您的 dom 结构时应该意识到存在重复。

【问题讨论】:

  • W3Validator 肯定会抛出错误。
  • 可能是为了适应旧的标记和浏览器

标签: html css dom html-parsing


【解决方案1】:

因为浏览器 HTML 解析器不执行任何调试功能。他们只是尽力应对所得到的一切。

最终用户不需要知道是否存在非致命错误,并且 HTML 中没有任何致命错误。 (在格式不正确的 XHTML 文档上引发致命错误是如此受欢迎的功能,以至于大多数(所有?)现代浏览器都会默默地切换到 HTML 解析器,而不是向最终用户显示错误)。

开发人员应使用验证工具对他们的工作进行 QA。

【讨论】:

  • 我宁愿说最终用户不会从错误和警告消息中受益匪浅,部分原因是错误非常普遍,以至于很难区分严重问题和常见马虎。并且浏览器确实对 XHTML 文档使用 XML 解析——当提供 XHTML 内容类型时。
  • 浏览器会向控制台抛出 css 规则被破坏或内容类型不匹配的警告,这两者都不会影响最终用户
【解决方案2】:

HTML 是一种标记语言,而不是一种编程语言。它没有可用于抛出错误的 API。

【讨论】:

  • HTML 解析器是用编程语言编写的,并且有可以用来抛出错误的 API。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
  • 1970-01-01
  • 1970-01-01
  • 2020-12-09
  • 2012-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多