疑似コードとフォーマットについてはご容赦ください。頭の中でコードを思い出すことはできません。
IE9 以下では setAttribute() メソッドを使用してプロパティと属性を設定できることは知っていましたが、IE10 では属性とプロパティを別々に分離することで変更されたようです。
のようなことをしても
element.setAttribute("className", "myClass");
として表示されるように要素を設定します
<tag className = "myClass" />
プロパティを設定することすらありません。
私のコードには、属性/プロパティの名前と値を格納するために使用する JSON リストがあります。これは、setAttribute(); で設定するだけです。
createElement(tag, list)
{
//pseudocode
var element = createElementWithTag(tag);
for each(attr in attributes)
if (attributes.hasOwnKey(attr))
element.setAttribute(attr, attributes[attr]);
}
これは IE7-9 では問題なく動作しましたが、IE10 では完全に失敗します。
どのタイプ (attr または prop) でなくてもプロパティと属性を設定できる方法はありますか?
変更したいプロパティのケースをハードコーディングせずに、プロパティを動的に設定する方法さえ考えられません。
解決策もおそらく役立つでしょう。