HTML 属性的长度有限制吗?

新手上路,请多包涵

HTML 中的属性值有多长?

我在新应用程序中使用 HTML5 样式数据属性 ( data-foo="bar" ),在一个地方存储大量数据(超过 100 个字符)真的很方便。虽然我怀疑这个数额没有问题,但它提出了多少才算过多的问题?

原文由 nickf 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

HTML5 对属性值的长度没有限制。

正如 规范 所说,“此版本的 HTML 因此返回到非 SGML 基础。”

后来在描述如何解析HTML5时,出现了下面这段话( 强调):

下面描述的算法对生成的 DOM 树的深度或标签名称、属性名称、 属性值、文本节点等 的长度 没有限制。虽然鼓励实现者避免任意限制,但认识到实际问题可能会迫使用户代理施加嵌套深度限制。

因此,(理论上) _HTML5 属性的长度/大小没有限制_。

请参阅修订历史以获取涵盖 HTML4 的原始答案。

原文由 bobbymcr 发布,翻译遵循 CC BY-SA 4.0 许可协议

我刚刚 编写了一个测试(注意! _请参阅下面的更新_),它将一个长度为 1000 万 的字符串放入一个属性中,然后再次检索它,并且它工作正常(Firefox 3.5.2 和 Internet Explorer 7)

5000 万使浏览器挂起并显示“此脚本需要很长时间才能完成”消息。

更新:我已经修复了脚本:它之前将 innerHTML 设置为一个长字符串,现在它正在设置一个数据属性。 https://output.jsbin.com/wikulamuni 它对我有用,长度为 1 亿。 YMMV。

 el.setAttribute('data-test', <<a really long string>>)

原文由 nickf 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题