Dart API Referencedart:htmlMutationObserver

MutationObserver class

@DomName('MutationObserver')
@SupportedBrowser(SupportedBrowser.CHROME)
@SupportedBrowser(SupportedBrowser.FIREFOX)
@SupportedBrowser(SupportedBrowser.SAFARI)
@Experimental
class MutationObserver native "MutationObserver,WebKitMutationObserver" {

 @DomName('MutationObserver.disconnect')
 @DocsEditable
 void disconnect() native;

 @DomName('MutationObserver.observe')
 @DocsEditable
 void _observe(Node target, Map options) {
   var options_1 = convertDartToNative_Dictionary(options);
   __observe_1(target, options_1);
   return;
 }
 @JSName('observe')
 @DomName('MutationObserver.observe')
 @DocsEditable
 void __observe_1(Node target, options) native;

 @DomName('MutationObserver.takeRecords')
 @DocsEditable
 List<MutationRecord> takeRecords() native;

 /**
  * Checks to see if the mutation observer API is supported on the current
  * platform.
  */
 static bool get supported {
   return JS('bool',
       '!!(window.MutationObserver || window.WebKitMutationObserver)');
 }

 void observe(Node target,
              {bool childList,
               bool attributes,
               bool characterData,
               bool subtree,
               bool attributeOldValue,
               bool characterDataOldValue,
               List<String> attributeFilter}) {

   // Parse options into map of known type.
   var parsedOptions = _createDict();

   // Override options passed in the map with named optional arguments.
   override(key, value) {
     if (value != null) _add(parsedOptions, key, value);
   }

   override('childList', childList);
   override('attributes', attributes);
   override('characterData', characterData);
   override('subtree', subtree);
   override('attributeOldValue', attributeOldValue);
   override('characterDataOldValue', characterDataOldValue);
   if (attributeFilter != null) {
     override('attributeFilter', _fixupList(attributeFilter));
   }

   _call(target, parsedOptions);
 }

  // TODO: Change to a set when const Sets are available.
 static final _boolKeys =
   const {'childList': true,
          'attributes': true,
          'characterData': true,
          'subtree': true,
          'attributeOldValue': true,
          'characterDataOldValue': true };


 static _createDict() => JS('var', '{}');
 static _add(m, String key, value) { JS('void', '#[#] = #', m, key, value); }
 static _fixupList(list) => list;  // TODO: Ensure is a JavaScript Array.

 // Call native function with no conversions.
 @JSName('observe')
 void _call(target, options) native;

 factory MutationObserver(MutationCallback callback) {
   // Dummy statement to mark types as instantiated.
   JS('MutationObserver|MutationRecord', '0');

   return JS('MutationObserver',
       'new(window.MutationObserver||window.WebKitMutationObserver||'
       'window.MozMutationObserver)(#)',
       convertDartClosureToJS(callback, 2));
 }
}

Extends

Interceptor > MutationObserver

Static Properties

final bool supported #

Checks to see if the mutation observer API is supported on the current platform.

static bool get supported {
 return JS('bool',
     '!!(window.MutationObserver || window.WebKitMutationObserver)');
}

Constructors

factory MutationObserver(MutationCallback callback) #

factory MutationObserver(MutationCallback callback) {
 // Dummy statement to mark types as instantiated.
 JS('MutationObserver|MutationRecord', '0');

 return JS('MutationObserver',
     'new(window.MutationObserver||window.WebKitMutationObserver||'
     'window.MozMutationObserver)(#)',
     convertDartClosureToJS(callback, 2));
}

Properties

final int hashCode #

inherited from Interceptor

Get a hash code for this object.

All objects have hash codes. Hash codes are guaranteed to be the same for objects that are equal when compared using the equality operator ==. Other than that there are no guarantees about the hash codes. They will not be consistent between runs and there are no distribution guarantees.

If a subclass overrides hashCode it should override the equality operator as well to maintain consistency.

docs inherited from Object
int get hashCode => Primitives.objectHashCode(this);

final Type runtimeType #

inherited from Interceptor

A representation of the runtime type of the object.

docs inherited from Object
Type get runtimeType => getRuntimeType(this);

Operators

bool operator ==(other) #

inherited from Interceptor

The equality operator.

The default behavior for all Objects is to return true if and only if this and other are the same object.

If a subclass overrides the equality operator it should override the hashCode method as well to maintain consistency.

docs inherited from Object
bool operator ==(other) => identical(this, other);

Methods

void disconnect() #

@DomName('MutationObserver.disconnect')
@DocsEditable
void disconnect() native;

dynamic noSuchMethod(Invocation invocation) #

inherited from Interceptor

noSuchMethod is invoked when users invoke a non-existant method on an object. The name of the method and the arguments of the invocation are passed to noSuchMethod in an Invocation. If noSuchMethod returns a value, that value becomes the result of the original invocation.

The default behavior of noSuchMethod is to throw a noSuchMethodError.

docs inherited from Object
dynamic noSuchMethod(Invocation invocation) {
 throw new NoSuchMethodError(
     this,
     _symbolToString(invocation.memberName),
     invocation.positionalArguments,
     _symbolMapToStringMap(invocation.namedArguments));
}

void observe(Node target, {bool childList, bool attributes, bool characterData, bool subtree, bool attributeOldValue, bool characterDataOldValue, List<String> attributeFilter}) #

void observe(Node target,
            {bool childList,
             bool attributes,
             bool characterData,
             bool subtree,
             bool attributeOldValue,
             bool characterDataOldValue,
             List<String> attributeFilter}) {

 // Parse options into map of known type.
 var parsedOptions = _createDict();

 // Override options passed in the map with named optional arguments.
 override(key, value) {
   if (value != null) _add(parsedOptions, key, value);
 }

 override('childList', childList);
 override('attributes', attributes);
 override('characterData', characterData);
 override('subtree', subtree);
 override('attributeOldValue', attributeOldValue);
 override('characterDataOldValue', characterDataOldValue);
 if (attributeFilter != null) {
   override('attributeFilter', _fixupList(attributeFilter));
 }

 _call(target, parsedOptions);
}

List<MutationRecord> takeRecords() #

@DomName('MutationObserver.takeRecords')
@DocsEditable
List<MutationRecord> takeRecords() native;

String toString() #

inherited from Interceptor

Returns a string representation of this object.

docs inherited from Object
String toString() => Primitives.objectToString(this);