2012-03-29 12 views
1

DOMAttrModifiedに関する質問があります。 HTML要素プロパティのどの変更がDOMAttrModifiedイベントを引き起こしますか(特にFirefoxに興味がありますが、他のブラウザにも当てはまる回答かもしれません)どのHTMLElementプロパティの変更によってDOMAttrModifiedが生成されますか?

私は、次のテストケースを持っている:

 var elem = document.createElement('input'); 
     document.body.appendChild(elem); 

     elem.id = 'inputId';  // triggers DOMAttrModified 
     elem.type = 'text';   // triggers DOMAttrModified 
     elem.value = 'inputValue'; // DOES NOT trigger DOMAttrModified 
     elem.lang = 'en';   // triggers DOMAttrModified 

私はelem.defaultValueにelem.valueを変更する場合は、DOMAttrModifiedがトリガ取得ありません。どこかに包括的なリストがありますか?これまでのところ、HTMLInputElementの 'value'と 'checked'とHTMLOptionElementの 'selected'プロパティがDOMAttrModifiedではないことがわかりました。他に何かありますか?

答えはDOMAttrModified visual attributesであり、「値」も属性であるため、完全に正しいとは思われません。

おかげで、 スニル

答えて

3

DOM valueプロパティは、HTMLマークアップvalue属性を変更しません。 DOM defaultValueがあります。 DOMAttrModifiedは、マークアップ属性が変更されたときに起動します。したがって、setAttribute/removeAttributeが呼び出され、属性を変更するすべてのプロパティセットが呼び出されます。

+0

お返事ありがとうございます。しかし、私の質問は、実際にDOMAttrModifiedを引き起こさないような「特殊属性」やその他の「プロパティ」の包括的なリストがあることです。これまでのところ、INPUT要素の 'value'と 'checked'、OPTION要素の 'selected'が見つかりました。そして、DOMAttrModifiedを(おそらく)引き起こさない 'scrollLeft'や 'scrollTop'のようなプロパティがあります。 –

+0

@ SunilAgrawal確かに。すべてのプロパティの定義でHTML仕様を見てください。コンテンツ属性を反映しているとは言わないものは、コンテンツ属性とは関係ありません。もちろん、それらのリストはあらかじめ用意されていません。また、HTML仕様で定義されていないものは、明らかにコンテンツ属性を反映しません。 –

+0

ちょうど私のために、私にいくつかの例を教えてもらえますか?ちょうど私が答えを理解していることを確認したい:)。 –

3

「disabled」属性が設定されていると、DOMAttrModifiedイベントは発生しません。あなたのイベントが発砲していない場合、それが理由になる可能性があります。これは、IEのみの 'onPropertyChange'イベントにも適用されます。

+1

突然変異の観察者であっても、突然変異の記録には含まれていませんか?はいの場合、それはバカになるでしょう。 –

関連する問題