IE8,9,10中的HTML和GUID

时间:2012-11-21 11:57:21

标签: html internet-explorer guid

我有一个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最终被截断。第一部分是字母数字的那些

2 个答案:

答案 0 :(得分:1)

根据html5草案,您确实可以拥有li的值属性,但只能包含有序列表(<ol>)中的值:

  

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

来源:li spec on w3c

此外:

  

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

来源:value attribute for li on w3c

然后,这可能就是为什么IE没有正确检索该值:在这种情况下它不需要。

答案 1 :(得分:1)

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

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