HTML自定义属性在Chrome中不起作用

时间:2009-05-21 20:08:37

标签: javascript html google-chrome

使用HTML自定义属性时,它无法在Chrome中使用。

我的意思是,假设我有这个HTML:

<div id="my_div" my_attr="1"></div>

如果我尝试在Chrome中使用JavaScript获取此属性,我会 undefined

alert( document.getElementById( "my_div" ).my_attr );

在IE中,它的工作正常。

4 个答案:

答案 0 :(得分:12)

通过getAttribute()检索它:

alert(document.getElementById( "my_div" ).getAttribute("my_attr"));

在IE,FF和Chrome上为我工作正常。

答案 1 :(得分:2)

IE是我见过的唯一一个不符合HTML DTD架构的荣誉属性的浏览器。

http://www.webdeveloper.com/forum/showthread.php?t=79429

但是,如果您愿意编写自定义DTD,则可以使其正常工作。

这是一篇很好的文章,可以从这个方向开始:

答案 2 :(得分:0)

对于Safari也有同样的问题,使用getAttribute(..)制造了魔法。它看起来像跨浏览器兼容。这篇文章很http://www.javascriptkit.com/dhtmltutors/customattributes.shtml

答案 3 :(得分:0)

您是否宣布您的网页符合XHTML标准?如果你这样做,你不能无所畏惧地向元素添加新属性。我的理解是有一些方法(毕竟,ASP.NET成功了),但你必须发出各种gunk(自定义模式?)。我不熟悉细节。