我有一个 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 查找类型自定义字段被渲染为包含 ul 的 iframe,如上面列出的 ul,其中 LI 标记是查找项, “value”属性具有每个查找项的唯一 ID)。
稍后编辑:
显然,所有第一部分是数字的 GUID/UUID 最终都会被截断。第一部分是字母数字的则不是
最佳答案
根据 html5 草案,您确实可以为 li 设置 value 属性,但仅限于 有序 列表 ( <ol>
) 内的属性:
If the element is a child of an ol element: value
此外:
The value attribute, if present, must be a valid integer giving the ordinal value of the list item.
来源:value attribute for li on w3c
那么,这可能就是 IE 无法正确检索该值的原因:在这种情况下它不需要这样做。
关于IE8、9、10 中的 HTML 和 GUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13492742/