2

我有一个 UL 列表,其中每个 LI 子标签都有一个名为“value”的属性,它的值是一个 GUID。我发现对于一个特定的 GUID,IE 只呈现 GUID 的第一部分(例如:如果 guid 是 93365457-30bc-45e4-a85a-b74728ec83fc 那么“值”属性的值就是 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,其中 LI 标记是查找项和“值” " 属性具有每个查找项的唯一 ID)。

稍后编辑:

显然,所有第一部分为数字的 GUID / UUID 都会被截断。第一部分是字母数字的那些不

4

2 回答 2

1

根据 html5 草案,您确实可以为 li 设置 value 属性,但仅限于有序列表 ( <ol>) 中的那些:

如果元素是 ol 元素的子元素:值

资料来源:关于 w3c 的 li 规范

此外:

value 属性,如果存在,必须是一个有效的整数,给出列表项的序数值。

来源:w3c 上 li 的 value 属性

那么,这可能就是 IE 无法正确检索该值的原因:在这种情况下它不需要。

于 2012-11-21T12:24:39.597 回答
1

该标准要求元素的value属性是数字。li您将看到其第一部分仅由数字组成的任何 GUID 都将以相同的方式运行。我认为 IE 所做的是它试图将其解析为一个数字,如果它不成功,那么它要么保持原样,要么如果第一部分是一个数字,那么它只保留那个。

如果你说源是由 MS 软件生成的,那么我想你无能为力(除了使用另一个浏览器)。否则,您可以简单地使用自定义属性而不是value.

于 2012-11-21T12:26:18.210 回答