HTML属性的长度是否有限制?

问题描述 投票:211回答:8

HTML中的属性值要多长时间?

我在一个新应用程序中使用HTML5样式数据属性(data-foo="bar"),并且在一个地方存储大量数据(最多100个字符)真的很方便。虽然我怀疑这笔钱是可以的,但它提出了多少是太多的问题?

html custom-data-attribute
8个回答
259
投票

HTML 4

从HTML 4的角度来看,属性是SGML构造。它们的限制在SGML Declaration of HTML 4中定义:

QUANTITY SGMLREFATTCNT 60-增加了-ATTSPLEN 65536-这些是最大值-LITLEN 65536-声明中允许-NAMELEN 65536-避免实际使用固定限制-PILEN 65536-HTML UA的实现-TAGLVL 100TAGLEN 65536玻璃钢150玻璃钢64

这里要讨论的值是“ ATTSPLEN”,这是元素属性说明列表的限制(应该是该元素所有属性的总大小)。上面的注释提到应避免使用固定限制,但是,在大多数实现中,除了可用内存外,没有其他实际限制。

HTML 5

HTML 5似乎有所不同,正如[C​​0]所说,“此版本的HTML因此返回了非SGML基础。”

稍后,当描述如何解析HTML 5时,将出现以下段落(添加强调:]

下面介绍的算法无限制关于DOM树的深度生成的,或on of of length标签名称,属性名称,属性值,文本节点等。鼓励实施者避免任意限制,这是公认的实际的担忧可能强制用户代理施加嵌套深度限制。

所以我想这就是你的答案。


142
投票

我只有the spec,它将长度为10百万]的字符串放入属性,然后再次检索它,并且工作正常(Firefox 3.5.2和Internet Explorer 7)

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


5
投票

我真的不认为有任何限制。我知道你现在可以做[]

written a test

4
投票

来自<a onclick=" //...insert 100KB of javascript code here">


1
投票

我从未听说过对属性长度的任何限制。


1
投票

0
投票

SGML定义的属性限制为65k个字符,请参见此处:http://bytes.com/topic/javascript/answers/92088-max-allowed-length-javascript-string:


0
投票

最近在Edge(版本81.0.416.58(64位)中经过测试,数据属性似乎限制为64k。

© www.soinside.com 2019 - 2024. All rights reserved.