如果我在元素上放置了一个虚构的属性,那么element.madeUpAttribute
应该返回false。 (它在现代浏览器中使用。)
然而,在IE8中,它返回属性值,行为如下:element.getAttribute('madeUpAttribute')
。
只有在浏览器支持该属性的情况下,才能使其返回属性值吗?
谢谢你们!
以下是演示:http://jsfiddle.net/Daniel_Hug/rWz2n/
这就是它在IE8中的样子:
答案 0 :(得分:2)
检查'madeUpAttribute' in element
是否支持某些功能对我来说有几个功能。
您可以尝试检查元素的原型。
旧版IE中没有DOM对象的原型,但有一个有趣的ancient feature
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;
}
这将适用于第一项任务。设置属性后,会认为它确实存在。