HTML5 自定义数据属性“起作用”吗?在 IE 6 中?
自定义数据属性: http://dev.w3 .org/html5/spec/Overview.html#embedding-custom-non-visible-data
当我说“工作”时,我的意思是,如果我有这样的 HTML:
<div id="geoff" data-geoff="geoff de geoff">
以下 JavaScript:
var geoff = document.getElementById('geoff');
alert(geoff.dataGeoff);
会产生 在 IE 6 中,带有以下内容的警报其中有“geoff de geoff”吗?
Custom data attributes: http://dev.w3.org/html5/spec/Overview.html#embedding-custom-non-visible-data
When I say “work”, I mean, if I’ve got HTML like this:
<div id="geoff" data-geoff="geoff de geoff">
will the following JavaScript:
var geoff = document.getElementById('geoff');
alert(geoff.dataGeoff);
produce, in IE 6, an alert with “geoff de geoff” in it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可以使用
getAttribute
检索自定义(或您自己的)属性的值。按照您的示例,data-geoff 的值
我可以使用See MSDN。尽管那里提到您需要 IE7 才能使其正常工作,但我不久前使用 IE6 对其进行了测试,它运行正常(即使在怪异模式下)。
当然,这与 HTML5 特定的属性无关。
You can retrieve values of custom (or your own) attributes using
getAttribute
. Following your example withI can get the value of
data-geoff
usingSee MSDN. And although it is mentioned there that you need IE7 to get this to work, I tested this a while ago with IE6 and it functioned correctly (even in quirks mode).
But this has nothing to do with HTML5-specific attributes, of course.
是的,它们可以工作。
IE 从 IE4 开始就支持
getAttribute()
,这也是 jQuery 在data()
内部使用的。因此,您可以使用 jQuery 的
.data()
方法或普通的 JavaScript:示例 HTML
Javascript
jQuery
Yes, they work.
IE has supported
getAttribute()
from IE4 which is what jQuery uses internally fordata()
.So you can either use jQuery's
.data()
method or plain vanilla JavaScript:Sample HTML
Javascript
jQuery
IE6 不仅不支持 HTML5 数据属性功能,事实上当前浏览器几乎没有支持它们!目前唯一的例外是 Chrome。
您可以完全自由地使用
data-geoff="geoff de geoff"
作为属性,但只有当前浏览器版本的 Chrome 才会为您提供.dataGeoff
属性。幸运的是,当前所有浏览器(包括 IE6)都可以使用标准 DOM
.getAttribute()
方法引用未知属性,因此.getAttribute("data-geoff")
将在任何地方工作。在不久的将来,新版本的 Firefox 和 Safari 将开始支持数据属性,但考虑到有一种在所有浏览器中都适用的完美的访问数据属性的方法,那么确实没有理由使用 HTML5 方法仅适用于部分访客。
您可以在 CanIUse.com 上查看有关此功能当前支持状态的更多信息。
希望有帮助。
Not only does IE6 not support the HTML5 Data Attribute feature, in fact virtually no current browser supports them! The only exception at the moment is Chrome.
You are perfectly at liberty to use
data-geoff="geoff de geoff"
as an attribute, but only Chrome of the current browser versions will give you the.dataGeoff
property.Fortunately, all current browsers - including IE6 - can reference unknown attributes using the standard DOM
.getAttribute()
method, so.getAttribute("data-geoff")
will work everywhere.In the very near future, new versions of Firefox and Safari will start to support the data attributes, but given that there's a perfectly good way of accessessing it that works in all browsers, then there's really no reason to be using the HTML5 method that will only work for some of your visitors.
You can see more about the current state of support for this feature at CanIUse.com.
Hope that helps.
我认为IE一直支持这个(至少从IE4开始)并且你可以从JS访问它们。它们被称为“expando 属性”。请参阅旧的 MSDN 文章
此行为可以禁用通过将 DOM 元素上的 Expando 属性 设置为 false(默认情况下为 true,因此 Expando 属性 默认情况下起作用)。
编辑:修复了 URL
I think IE has always supported this (at least starting from IE4) and you can access them from JS. They were called 'expando properties'. See old MSDN article
This behaviour can be disabled by setting the expando property to false on a DOM element (it's true by default, so the expando properties work by default).
Edit: fixed the URL
如果您想一次检索所有自定义数据属性(例如较新浏览器中的数据集属性),您可以执行以下操作。这就是我所做的,并且在 ie7+ 中对我来说非常有效。
If you wanted to retrieve all of the custom data attributes at once like the dataset property in newer browsers, you could do the following. This is what I did and works great for me in ie7+.
在 IE6 中,它可能不起作用。供参考:MSDN
我建议使用 jQuery 来处理大多数情况:
在您的编码中尝试这个。
In IE6, it may not work. For reference: MSDN
I suggest using jQuery to handle most of the cases:
Try this in your coding.