0

要素に作成された属性を配置すると、element.madeUpAttributefalse が返されます。(最新のブラウザではそうです。)

ただし、IE8 では、次のように動作して属性値を返しますelement.getAttribute('madeUpAttribute')

属性がブラウザでサポートされている場合にのみ、属性値を返すようにする方法はありますか?

みんなありがとう!

[アップデート]

ここにデモがあります:http://jsfiddle.net/Daniel_Hug/rWz2n/

IE8 では次のようになります。

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

4

1 に答える 1

2

いくつかの機能がサポートされているかどうかを確認すると'madeUpAttribute' in element、いくつかのケースでうまくいきます。

実際には、要素のプロトタイプをチェックしようとするかもしれません。

古いIEにはDOMオブジェクトのプロトタイプはありませんが、興味深い古代の機能が1つあります。

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

ただし、これは最初の割り当てでは機能します。プロパティが設定された後、それが存在すると見なされます。

于 2012-04-15T23:22:42.223 に答える