Javascript - element.madeUpAttribute与IE8中的element.getAttribute('madeUpAttribute')相同 -

时间:2012-04-15 23:16:53

标签: javascript html

如果我在元素上放置了一个虚构的属性,那么element.madeUpAttribute应该返回false。 (它在现代浏览器中使用。)

然而,在IE8中,它返回属性值,行为如下:element.getAttribute('madeUpAttribute')

只有在浏览器支持该属性的情况下,才能使其返回属性值吗?

谢谢你们!

[更新]

以下是演示:http://jsfiddle.net/Daniel_Hug/rWz2n/

这就是它在IE8中的样子:

http://f.cl.ly/items/0d1t3l2E1n1a3j0l1W2j/IE8.png

1 个答案:

答案 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;
}

这将适用于第一项任务。设置属性后,会认为它确实存在。