如果我在一个元素上添加了一个虚构的属性,那么element.madeUpAttribute
应该返回 false。(在现代浏览器中确实如此。)
然而在 IE8- 它返回属性值,就像:element.getAttribute('madeUpAttribute')
.
仅当浏览器支持该属性时,有什么方法可以使其返回属性值?
多谢你们!
[更新]
这是一个演示:http: //jsfiddle.net/Daniel_Hug/rWz2n/
这是它在 IE8 中的样子:
如果我在一个元素上添加了一个虚构的属性,那么element.madeUpAttribute
应该返回 false。(在现代浏览器中确实如此。)
然而在 IE8- 它返回属性值,就像:element.getAttribute('madeUpAttribute')
.
仅当浏览器支持该属性时,有什么方法可以使其返回属性值?
多谢你们!
这是一个演示:http: //jsfiddle.net/Daniel_Hug/rWz2n/
这是它在 IE8 中的样子:
检查是否支持某些功能'madeUpAttribute' in element
在几种情况下对我来说是诀窍。
实际上,您可以尝试检查元素的原型。
旧版 IE 中没有 DOM 对象的原型,但有一个有趣的古老特性
if (element.prototype) {
return 'madeUpAttribute' in element.prototype
} else {
document.expando = false;
var hasProp = true;
try {
element.madeUpAttribute = element.madeUpAttribute;
} catch(e) {
hasProp = false;
}
document.expando = true;
return hasProp;
}
不过,这将适用于第一个任务。设置属性后,认为它确实存在。