2012-03-29 16 views
1

Ich habe eine Frage zu DOMAttrModified. Welche Änderungen an den Eigenschaften eines HTML-Elements lösen das Ereignis DOMAttrModified aus (speziell an Firefox interessiert, aber auch eine Antwort, die für andere Browser gilt)?Welche HTMLElement-Eigenschaft ändert DOMAttrModified?

Ich habe den folgenden Testfall:

 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 

Wenn ich elem.value zu elem.defaultValue ändern, dann ein DOMAttrModified nicht ausgelöst werden. Gibt es irgendwo eine umfassende Liste? Bisher habe ich festgestellt, HTMLInputElement 'Wert' und 'überprüft' und HTMLOptionElement 'ausgewählte' Eigenschaft nicht triggerring DOMAttrModified. Gibt es noch andere?

Die Antwort bei DOMAttrModified visual attributes scheint nicht vollständig korrekt zu sein, da "Wert" auch ein Attribut ist.

Danke, Sunil

Antwort

3

Das Objekt DOM value nicht das Markup ändern HTML value Attribut. Das DOM defaultValue tut. DOMAttrModified wird ausgelöst, wenn sich die Markup-Attribute ändern, also setAttribute/removeAttribute Aufrufe und alle Eigenschaften, die ein Attribut ändern.

+0

Danke für die Antwort. Aber meine Frage ist, gibt es eine umfassende Liste von solchen "speziellen Attributen" und anderen "Eigenschaften", die nicht wirklich DOMAttrModified verursachen. Bis jetzt habe ich INPUT-Element 'value' und 'checked' gefunden, OPTION-Element ist 'selected'. Und dann gibt es Eigenschaften wie "scrollLeft" und "scrollTop", die DOMAttrModified (verständlicherweise) nicht verursachen. –

+0

@SunilAgrawal Sicher. Suchen Sie in der HTML-Spezifikation nach den Definitionen aller Eigenschaften. Diejenigen, die nicht sagen, dass sie ein Inhaltsattribut wiedergeben, haben nichts mit Inhaltsattributen zu tun. Es gibt natürlich keine vorgefertigte Liste. Und alles, was nicht in der HTML-Spezifikation definiert ist, würde offensichtlich keine Inhaltsattribute wiedergeben. –

+0

Nur um meinetwillen, können Sie mir bitte einige Beispiele geben (außer den oben genannten). Ich möchte nur sicherstellen, dass ich die Antwort verstehe :). –

3

Bitte beachten Sie auch, dass NO DOMAttrModified Ereignisse ausgelöst werden, wenn das Attribut 'deaktiviert' gesetzt ist. Wenn also dein Event nicht ausgelöst wird, könnte das der Grund sein. Dies gilt auch für das IE-OnPropertyChange-Ereignis.

+1

Trifft dies auch für die Mutationsbeobachter zu, d. H. Sie sind nicht in den Mutationsaufzeichnungen enthalten? Wenn ja, wäre das eine Enttäuschung. –

Verwandte Themen