我有一个UL列表,其中每个LI子标记都有一个名为“value”的属性,它的值是GUID。 我发现对于一个特定的GUID,IE只呈现GUID的第一部分(例如:如果guid是93365457-30bc-45e4-a85a-b74728ec83fc,则“value”属性的值仅为93365457.对于其他GUID值正确呈现。
您可以通过打开这个简单的html进行测试:
<!DOCTYPE html>
<html>
<head>
<title>Guid on IE test</title>
<meta charset="utf-8">
</head>
<body>
<ul>
<li value="79c8c2b5-ea63-4a4e-8b2e-c55c8f814e83">1</li>
<li value="93365457-30bc-45e4-a85a-b74728ec83fc">2</li>
<li value="352c32a6-596e-4897-b297-7b5fb4a06bb1">3</li>
</ul>
</body>
</html>
第一个和第三个li正确呈现,但第二个没有。 我通过使用IE的开发人员工具并使用javascript来读取值来检查这一点。
我已经在Win2008上的IE 8,9和Win 8上的IE 10上测试并复制了这个问题
是否有针对此问题的已知修复程序?
我在使用MS Project Server 2010时遇到过这个问题。 Sharepoint 2010(PJS 2010查找类型自定义字段呈现为iframe,其中包含的ul类似于上面列出的那个,其中LI标记是查找项,“value”属性具有每个查找项的唯一ID)。 / p>
稍后编辑:
显然所有第一部分都是数字的GUID / UUID最终被截断。第一部分是字母数字的那些
答案 0 :(得分:1)
根据html5草案,您确实可以拥有li的值属性,但只能包含有序列表(<ol>
)中的值:
如果元素是ol元素的子元素:value
此外:
value属性(如果存在)必须是给出的有效整数 列表项的序数值。
来源:value attribute for li on w3c
然后,这可能就是为什么IE没有正确检索该值:在这种情况下它不需要。
答案 1 :(得分:1)
标准要求value
元素的li
属性是一个数字。您将看到任何第一部分仅由数字组成的GUID将以相同的方式运行。我认为IE所做的是它试图将其解析为一个数字,如果它不成功那么它要么保持原样,要么如果第一部分是一个数字那么它只保留它。
如果您说MS是由MS软件生成的,那么我猜您无能为力(除了使用其他浏览器)。否则,您可以简单地使用自定义属性而不是value
。