Javascript - element.madeUpAttribute 与 IE8- 中的 element.getAt

Javascript - element.madeUpAttribute is the same as element.getAttribute('madeUpAttribute') in IE8-

本文关键字:element 中的 getAt IE8- madeUpAttribute Javascript      更新时间:2023-09-26

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

但是在IE8中,它返回属性值,就像:element.getAttribute('madeUpAttribute')

有什么方法可以让它仅在浏览器支持属性时才返回属性值?

谢谢大家!

[更新]

下面是一个演示:http://jsfiddle.net/Daniel_Hug/rWz2n/

这是它在IE8中的样子:

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

检查某些功能是否支持'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;
}

不过,这将适用于第一个作业。设置属性后,将认为它确实存在。