Отслеживаем изменение DOM
Добавлял в библиотеку GCF.js возможность работы с глобальным контекстом. Которая позволит подписывать элементы на так называемый объект, при смене значения в котором, элементы бы меняли значения в себе. Либо хранить информацию в стандартном виде, а в разных местах получать подогнанную под нужный формат. 
Так как сайты за частую динамические, а подписывать на нужное поле контекста хотелось через атрибуты в HTML, значит нужно уметь отслеживать изменение DOM и выполнять определенную функцию.

Речь пойдет о MutationObserver.
Он позволяет отслеживать, как появление, удаление новых узлов, так изменение атрибутов и текстовых блоков.
var 
     MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
     Observer = new MutationObserver(function(mutations) {
          // вызывается при изменении
          // переберем все изменения
          mutations.forEach(function(mutation) {
               console.log(mutation);
          });
     });

Observer.observe(document.querySelector('body'), {
     childList: true,  // отслеживать изменение DOM
     subtree: true    // смотреть за всеми дочерними элементами
});
Для завершения наблюдения: Observer.disconnect();

В данном примере при появлении или удалении элемента в body выполнится console.log(mutation); выведя все изменения.

Observer.observe передается два аргумента, первый элемент, второй набор опций.
Возможные опции:
childList - Наблюдать за добавлением, удалением элементов или текстовых узлов.
attributes - Наблюдать за изменением атрибутов.
characterData - Наблюдать за изменением текстовых узлов.
subtree - Наблюдать за всеми дочерними элементами.
attributeOldValue - Возвращать предыдущее значение атрибута.
characterDataOldValue - Возвращать предыдущее значение Data атрибута.
attributeFilter - Массив с названиями атрибутов, за которыми наблюдать.

Обязательно необходимо передать один из: childList, attributes, characterData, иначе будет ошибка.
Если нет subtree, изменения будут отслеживаться непосредственно, у элемента переданного первым аргументом. При изменении атрибутов у дочерних или изменения узлов у дочерних, реакции не будет.